【发布时间】:2016-03-02 00:51:34
【问题描述】:
如果 ajax 调用完成,我将检查我的 selenium 脚本,其中我首先检查文档是否准备好,然后检查 jQuery 是否已定义,然后检查活动状态
public class WaitForAjaxToLoad {
public static void waitForAjaxToLoad(WebDriver driver) {
final JavascriptExecutor js= (JavascriptExecutor) driver;
WebDriverWait wait = new WebDriverWait(driver, 15);
ExpectedCondition<Boolean> e = new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
if(js.executeScript("return document.readyState").equals("complete"))
{
if((boolean) js.executeScript("return window.jQuery != undefined")) {
Boolean status= (Boolean) js.executeScript("return jQuery.active==0");
System.out.println("Jquery is defined active status:"+status+"for thread:"+Thread.currentThread().getId());
if (status) {
return true;
} else {
return false;
}
}
else {
System.out.println("jQuery is undefined for thread "+Thread.currentThread().getId());
return false;
}
}
else {
System.out.println("Document is not ready for thread "+Thread.currentThread().getId());
return false;
}
}
};
wait.until(e);
}
}
当我执行脚本时,文档已准备就绪,但 jQuery 未定义。 当测试方法并行执行时会发生这种情况。 为什么一旦文档准备好我会得到 jQuery 未定义?
【问题讨论】:
标签: jquery ajax selenium-webdriver