在我的情况下,我想测量加载网页的完整内容而不仅仅是基本页面源所需的时间。这些页面来自点击元素,因此driver.get("Some url");
可能对我不起作用,因为目标网页的网址未知。 urlByText.Click();
。
我有什么方法可以做到吗?
答案 0 :(得分:4)
不是默认情况下,不是。硒真的不应该用来测试这个。这种测试应该通过专为页面加载时间设计的工具来完成。类似的东西:
话虽如此,不建议使用Selenium,但它是可能的。
您可以通过首先了解您的应用为其ajax调用使用哪种js库来实现您想要的结果。
一旦你知道,你就可以检测并等待所有的ajax调用完成。
像(伪代码):
waitForJavaScript("(typeof Ajax == 'undefined' ? jQuery.active == 0 : Ajax.activeRequestCount == 0)")
但是这不会给你“真正的”页面加载,因为你必须主动监视这些属性,有时属性不会存在,所以你可能会发现自己在等待ajax事件发生,从来没有。这导致无法获得“实时”加载结果。
我的意见是使用专为此目的而设计的工具。 不 Selenium。 Selenium旨在自动化应用程序。没有特别关注加载时间