我正在使用Serenity bdd 1.53和最新的Chrome驱动程序。 当测试运行时,浏览器几乎立即关闭,Selenium抛出错误" Web驱动程序异常:未知错误:jQuery未定义"。
我试图等待jquery加载,但结果几乎一直都是这样。
public boolean waitForJSandJQueryToLoad() {
WebDriver driver = getDriver();
WebDriverWait wait = new WebDriverWait(driver, 30);
// wait for jQuery to load
ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
try {
return ((Long)((JavascriptExecutor)driver).executeScript("return jQuery.active") == 0);
}
catch (Exception e) {
// no jQuery present
return true;
}
}
};
// wait for Javascript to load
ExpectedCondition<Boolean> jsLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor)driver).executeScript("return document.readyState")
.toString().equals("complete");
}
};
return wait.until(jQueryLoad) && wait.until(jsLoad);
}
试图等待整个页面加载,但同样的事情发生了。
void waitForLoad() {
new WebDriverWait(getDriver(), 30).until((ExpectedCondition<Boolean>) wd ->
((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete"));
}
测试在我的本地VM上运行良好,但是当我尝试在外部服务器上进行测试时,这个问题总会发生。
这个问题可能是什么原因?
编辑: 堆栈跟踪
Web driver exception: unknown error: jQuery is not defined
(Session info: chrome=60.0.3112.113)
(Driver info: chromedriver=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 6 milliseconds