如何使用selenium或C#测量加载页面的准确时间?

如何使用selenium或C#测量加载页面的准确时间?,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,在我的例子中,我想测量加载网页完整内容所需的时间,而不仅仅是基本页面源。这些页面来自于点击元素,所以driver.get(“一些url”)可能不适用于我,因为目标网页的url未知,例如urlByText.Click() 有什么方法可以做到吗?不是默认情况,不是。Selenium真的不应该用来测试这一点。这类测试应该通过一个为页面加载时间设计的工具来完成。比如: 吉米特 戈麦斯 也就是说,不建议使用硒,但这是可能的 您可以通过首先了解应用程序用于ajax调用的js库的类型来获得想要的结果 一旦

在我的例子中,我想测量加载网页完整内容所需的时间,而不仅仅是基本页面源。这些页面来自于点击元素,所以
driver.get(“一些url”)可能不适用于我,因为目标网页的url未知,例如
urlByText.Click()


有什么方法可以做到吗?

不是默认情况,不是。Selenium真的不应该用来测试这一点。这类测试应该通过一个为页面加载时间设计的工具来完成。比如:

  • 吉米特
  • 戈麦斯
也就是说,不建议使用硒,但这是可能的

您可以通过首先了解应用程序用于ajax调用的js库的类型来获得想要的结果

一旦知道了这一点,就可以检测并等待所有ajax调用完成

类似于(伪代码):

但这不会给您“真正的”页面负载,因为您必须主动监视这些属性,而且有时这些属性不在那里,因此您可能会发现自己在等待ajax事件的发生,而这永远不会发生。这导致无法获得“实时”加载结果


我的意见是使用专门为此目的设计的工具硒。Selenium是为自动化应用程序而设计的。不是特别关心加载时间,不是默认情况,不是。Selenium真的不应该用来测试这一点。这类测试应该通过一个为页面加载时间设计的工具来完成。比如:

  • 吉米特
  • 戈麦斯
也就是说,不建议使用硒,但这是可能的

您可以通过首先了解应用程序用于ajax调用的js库的类型来获得想要的结果

一旦知道了这一点,就可以检测并等待所有ajax调用完成

类似于(伪代码):

但这不会给您“真正的”页面负载,因为您必须主动监视这些属性,而且有时这些属性不在那里,因此您可能会发现自己在等待ajax事件的发生,而这永远不会发生。这导致无法获得“实时”加载结果


我的意见是使用专门为此目的设计的工具硒。Selenium是为自动化应用程序而设计的。不特别关心加载时间

这很有帮助。谢谢!您可以在各种浏览器的开发工具中获得一些简单的计时,例如Chrome中的网络选项卡。这非常有用。谢谢!您可以在各种浏览器的开发工具中获得一些简单的计时,例如Chrome中的网络选项卡。
waitForJavaScript("(typeof Ajax == 'undefined' ? jQuery.active == 0 : Ajax.activeRequestCount == 0)")