找出Selenium未成功加载的资源

Gáb*_*ták 8 javascript java selenium integration-testing selenium-webdriver

我必须用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();
}
Run Code Online (Sandbox Code Playgroud)

有时候,浏览器仍在加载一些资源.据我所知,如果readyState交互式的而不是完整的,我有时可以接受.例如,如果某些广告未及时加载,我的测试完全没有意义.

有可能以某种方式获取包含尚未加载的URL的资源列表吗?然后我可以建立一个断言,检查哪些资源对于测试是必需的,哪些不是.

我在Linux下使用Selenium Java WebDriver 2.53.1和Firefox 46.

小智 1

  1. 等待特定元素出现
  2. 解决方法是使用 browsermob 代理或类似的 smthn,在 browsermob 的情况下,有一种方法允许您等待网络流量停止并等待一定的时间以确保浏览器不会进行任何其他调用。