【发布时间】:2016-11-23 10:41:39
【问题描述】:
我必须使用 Selenium 测试应用程序。该应用程序包含广告等外部内容。在我的测试中,我有好几次等待文档加载。这看起来像这样:
private static final String DOCUMENT_READY_STATE_COMPLETE = "complete";
protected void waitUntilDocumentLoaded() {
wait.until(input -> getDocumentReadyState().equals(DOCUMENT_READY_STATE_COMPLETE));
}
private String getDocumentReadyState() {
return ((JavascriptExecutor) driver).executeScript("return document.readyState").toString();
}
有时会发生,浏览器仍在加载某些资源。据我了解,如果 readyState 是 interactive 而不是 complete,我有时可以接受。比如有些广告没有及时加载,因为我的测试完全没意思。
是否有可能以某种方式获取包含尚未加载的 URL 的资源列表? 然后我可以构建一个断言,检查哪些资源对于测试是强制性的,哪些是不是。
我在 Linux 下使用 Selenium Java WebDriver 2.53.1 和 Firefox 46。
【问题讨论】:
-
一种潜在的替代方法...您的广告是否具有容器元素,您可以在其中查看是否存在与广告相关的元素?
标签: javascript java selenium selenium-webdriver integration-testing