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"