我正在创建一个应用程序来检查页面加载所需的时间.到目前为止,我有这样的事情:
long startTime = System.currentTimeMillis(); //load page and wait for it to finish long elapsedTime = System.currentTimeMillis() - startTime;
现在,我不只想测量html文档加载的时间,而是整个dom.基本上,如果它在浏览器中,我希望它能够测量加载微调器停止所需的时间.
我该怎么做才能做到最好?我正在尝试WebDriver,但它似乎并不一致; 有时它会在仍然加载东西时考虑完成页面(我也尝试了隐式等待).
要获得以下Load
时间:
运行以下脚本:
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutomationTests {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
final JavascriptExecutor js = (JavascriptExecutor) driver;
// time of the process of navigation and page load
double loadTime = (Double) js.executeScript(
"return (window.performance.timing.loadEventEnd - window.performance.timing.navigationStart) / 1000");
System.out.print(loadTime + " seconds"); // 5.15 seconds
}
}
为了从服务器收到页面后加载页面所需的时间更改:
window.performance.timing.navigationStart
到window.performance.timing.responseEnd
在Firefox和Chrome上测试过.