如何等待除 "jQuery.active ==0" 之外的所有 ajax 请求完成?
How to wait all ajax requests finished except "jQuery.active ==0"?
事实上,我正在使用 webdriver,我想让它等待 ajax 完成。
以下是我从搜索网站得到的代码:
public static void waitAjaxDone(WebDriver dr) {
WebDriverWait wait = new WebDriverWait(dr, 60);
wait.until(new ExpectedCondition<Object>() {
@Nullable
@Override
public Object apply(@Nullable WebDriver webDriver) {
return ((JavascriptExecutor)webDriver).executeScript("return jQuery.active==0");
}
});
}
我们可以看到关键代码是“jQuery.active”,这可能会得到 运行 ajax 请求计数,但它现在对我有用,我的网站没有使用 jQuery 但其他 js 库。
还有其他方法可以得到 运行 ajax 的计数吗?
或者在纯 javascript 中是否有与“jQuery.active”匹配的方法?
其实ajax请求是否完成真的很难知道,我们可以直接发送ajax请求得到响应,然后进行下一步
事实上,我正在使用 webdriver,我想让它等待 ajax 完成。 以下是我从搜索网站得到的代码:
public static void waitAjaxDone(WebDriver dr) {
WebDriverWait wait = new WebDriverWait(dr, 60);
wait.until(new ExpectedCondition<Object>() {
@Nullable
@Override
public Object apply(@Nullable WebDriver webDriver) {
return ((JavascriptExecutor)webDriver).executeScript("return jQuery.active==0");
}
});
}
我们可以看到关键代码是“jQuery.active”,这可能会得到 运行 ajax 请求计数,但它现在对我有用,我的网站没有使用 jQuery 但其他 js 库。
还有其他方法可以得到 运行 ajax 的计数吗? 或者在纯 javascript 中是否有与“jQuery.active”匹配的方法?
其实ajax请求是否完成真的很难知道,我们可以直接发送ajax请求得到响应,然后进行下一步