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"