Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用webDriver识别当前网页上活动的jQuery组件?_Javascript_Java_Selenium Webdriver_Webdriver - Fatal编程技术网

Javascript 如何使用webDriver识别当前网页上活动的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 {

我目前正在尝试使用SeleniumWebDriver自动化包含少量js和jQuery实现的网页。我注意到很少有帖子说要实现完全等待页面加载的代码

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中发布的不清楚或不需要的帖子/代码。