我正在使用selenium webdriver / java进行应用程序测试,我遇到了一个奇怪的问题。
当我获得一个URL,然后尝试查找或等待一个元素时,执行将近6分钟需要很长时间。
driver.manage().timeouts().pageLoadTimeout(90, TimeUnit.SECONDS);
driver.get(getApplicationURL());
Boolean isPresent = driverUtil.waitAndCheckPresent(20,By.xpath(<my xpath>));
.......................................................
.................................................
public boolean waitAndCheckPresent(int timeout, By by){
try {
WebDriverWait wait = new WebDriverWait(driver, timeout);
WebElement elem = wait.until(ExpectedConditions
.visibilityOfElementLocated(by));
return true;
} catch (Exception e) {
return false;
}
}
详细信息: - FF版: - 17-24 Webdriver: - 2.35.0
我不知道为什么它会在继续之前停留这么久,正如我所提到的,我只在第一次加载页面时看到这一点,[页面是一个登录页面,在10秒内出现输入字段]
答案 0 :(得分:0)
您仍然可以通过等待5-8秒的预期元素的存在(不等待可见性)然后发送 window.stop() JS脚本(以停止加载)来加速脚本执行其他元素)无需等待整个页面加载 或者在5-8秒后捕获页面加载的超时异常,然后调用window.stop()
因为如果页面没有采用延迟加载技术(仅加载可见元素并仅在滚动后加载元素的其余部分),它会在返回window.ready状态之前加载每个元素,因此如果任何元素需要更长的时间,它将会更慢渲染。