Javascript 如何使用webDriver识别当前网页上活动的jQuery组件?
我目前正在尝试使用SeleniumWebDriver自动化包含少量js和jQuery实现的网页。我注意到很少有帖子说要实现完全等待页面加载的代码Javascript 如何使用webDriver识别当前网页上活动的jQuery组件?,javascript,java,selenium-webdriver,webdriver,Javascript,Java,Selenium Webdriver,Webdriver,我目前正在尝试使用SeleniumWebDriver自动化包含少量js和jQuery实现的网页。我注意到很少有帖子说要实现完全等待页面加载的代码 ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() { @Override public Boolean apply(WebDriver driver) { try {
ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
try {
return ((Long) executeJavaScript("return jQuery.active") == 0);
} catch (Exception e) {
return true;
}
}
};
ExpectedCondition jQueryLoad=新的ExpectedCondition(){
@凌驾
公共布尔应用(WebDriver驱动程序){
试一试{
return((长)executeJavaScript(“return jQuery.active”)==0);
}捕获(例外e){
返回true;
}
}
};
但是我无法解决使用executeJavaScript引发的“未定义类型错误”。有人能告诉我我缺少哪个图书馆吗?或者如何使用此代码。没有这样的方法
executeJavaScript
,有一种方法executeScript
可以用来执行javascript,但为此,您必须将webdriver实例强制转换为JavascriptExecutor
。以下代码供您参考:-
将您的返回语句替换为以下内容:-
((long)((JavascriptExecutor)driver).executeScript("return jQuery.active") == 0);
谢谢你指出这一点。但是请看一下这个[链接]()。我尝试将驱动程序实例强制转换为JavaScriptExecutor。”return((long)js.executeScript(“return jQuery.active”)==0);”。您使用的是哪个selenium版本的jar?我正在JDK 1.8中使用'selenium-server-standalone-3.0.1'。检查您的构建路径中是否有guava.jar?在StackOverflow中发布之前,我在类路径中添加了'guava.jar'。但这并没有解决我的问题。感谢那些献身于评论的人。当我遇到问题时,我努力理解StackOverflow中发布的不清楚或不需要的帖子/代码。