用java测量网页的总加载时间

用java测量网页的总加载时间,java,selenium,webdriver,Java,Selenium,Webdriver,我正在创建一个应用程序来检查加载一个页面需要多长时间。到目前为止,我有这样的想法: long startTime = System.currentTimeMillis(); //load page and wait for it to finish long elapsedTime = System.currentTimeMillis() - startTime; 现在,我不仅要测量加载html文档所需的时间,还要测量整个dom。基本上,如果它在浏览器中,我希望它测量加载微调器停止所需的时间

我正在创建一个应用程序来检查加载一个页面需要多长时间。到目前为止,我有这样的想法:

long startTime = System.currentTimeMillis();
//load page and wait for it to finish
long elapsedTime = System.currentTimeMillis() - startTime;
现在,我不仅要测量加载html文档所需的时间,还要测量整个dom。基本上,如果它在浏览器中,我希望它测量加载微调器停止所需的时间


我怎样才能做到最好?我正在尝试WebDriver,但它似乎并不一致;有时它认为页面在加载内容的同时完成了(我也尝试了隐式等待)。

在这种情况下,您需要等待某个元素显示出来。像这样:

long startTime = System.currentTimeMillis();

driver.get("Some url");

WebElement ele = driver.findElement(By.id("ID of some element"));

long endTime = System.currentTimeMillis();
long elapsedTime = endTime - startTime ;

System.out.println("Total Time for page load - " + totalTime); 

要获得
加载
时间,如下所示:

运行以下脚本:

import org.openqa.selenium.JavascriptExecutor;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.chrome.ChromeDriver;
公共类自动测试{
公共静态void main(字符串[]args){
WebDriver驱动程序=新的ChromeDriver();
驱动程序。获取(“http://www.google.com");
最终JavascriptExecutor js=(JavascriptExecutor)驱动程序;
//导航和页面加载过程的时间
双加载时间=(双)js.executeScript(
“返回(window.performance.timing.loadEventEnd-window.performance.timing.navigationStart)/1000”);
System.out.print(加载时间+“秒”);//5.15秒
}
}
要获取从服务器收到页面后加载页面所需的时间,请更改:
window.performance.timing.navigationStart
window.performance.timing.responseEnd


在Firefox和Chrome上测试。

如果您使用Selenide框架,它已经包含了一个功能,可以为您提供所有页面组件的计时


您是否尝试自动/重复执行此操作?如果不是:大多数浏览器都可以用他们的开发工具给你提供这样的信息。@Marged是的,我想重复/自动地这样做当我运行这个时,我会得到这个错误。“驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关更多信息,请参阅。最新版本可从下载。”。我能为此做些什么?