我在使用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
网路驱动程式:-2.35.0
我不知道为什么它要挂这么长时间才能继续,正如我提到的那样,只有在页面首次加载时,我才会看到此信息,[该页面是登录页面,输入字段在10秒内出现]
解决方法:
您仍然可以通过等待预期元素的存在(而不是等待可见性)达5-8秒,然后发送window.stop()JS脚本(停止加载其他元素)来加快脚本的执行速度,而无需等待整个页面的加载
或在5-8秒后捕获页面加载的超时异常,然后调用window.stop()
因为如果页面未采用延迟加载技术(仅加载可见元素并且仅在滚动后才加载元素的其余部分),它将在返回window.ready状态之前加载每个元素,因此如果其中任何元素花费较长的时间渲染,则它会变慢.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。