Selenium + Wait for Ajax

Java, Programação, Selenium No Comments

Hoje tive que fazer um teste automatizado que deveria obrigatoriamente esperar por um Ajax ser executado para continuar a sua execução.

Encontrei este link: http://agilesoftwaretesting.com/?p=111, que fala o seguinte:

Faça um método em java como:

public static void waitForAjax(Selenium selenium, String timeout) {
    String js_condition = 
      "selenium.browserbot.getCurrentWindow().jQuery.active == 0";
    selenium.waitForCondition(js_condition, timeout);
}

O valor da variável js_condition dependerá do framework JS que está sendo utilizado no site. Basicamente ele segue o seguinte formato:

"selenium.browserbot.getCurrentWindow()." + library specific string + " == 0"

Onde a parte específica pode ser:

jQuery: "jQuery.active"
Prototype: "Ajax.activeRequestCount"
Dojo: "dojo.io.XMLHTTPTransport.inFlight.length"

Selenium – Permission denied to get property Location.href

Java, Programação, Selenium 1 Comment

Hoje tive um problema no Selenium, no qual o mesmo não conseguia verificar a url do navegador, jogando uma exceção com a seguinte mensagem:

Permission denied to get property Location.href

Procurando no google, encontrei o seguinte blog:

http://www.woloszyn.org/2008/04/22/selenium-and-the-permission-denied-to-get-property-locationhref-problem/

Este blog mencionava que o problema era causado por um redirect enviado pelo response do servidor. A solução desse blog foi não utilizar o redirect.

Em outro site:

http://www.nabble.com/Permission-denied-to-get-property-Location.href-td8081383.html

Falava que só bastava utilizar o *chrome ou *iehta (no meu código estava sendo utilizado o *firefox). Após esta alteração, tudo voltou a funcionar normalmente.