如何获得网站网页上每个元素的加载时间
对于获取页面加载时间,我们可以使用:
long start = System.currentTimeMillis();
driver.get(urls[i]);
long finish = System.currentTimeMillis();
long totalTime = (finish - start)/1000;
但这不是一个好主意,计算每个图像,css和js的加载时间,而不是我们可以使用"http://www.webpagetest.org/"。
所以最后我的问题是我如何使用selenium webdriver执行上述任务?
Selenium不是获取任何元素加载时间的好工具,正如您在Selenium文档中看到的那样,findElement(By By)本身有一些等待时间。
WebElement findElement(By By)
使用给定方法查找第一个WebElement。此方法在执行时受到"隐式等待"时间的影响。findElement(..)调用将返回匹配的行,或者重复尝试,直到达到配置的超时。不应该使用findElement来查找不存在的元素,而是使用findElements(By)并断言零长度响应。
我建议你可以使用jmeter来获取它。:)
不,你不能使用Selenium。我想不出有什么合理的理由需要页面上每个元素的加载时间。在查找几个元素的时间内,将加载所有元素。
你最好看看它需要多长时间的DOM加载等,你可以在Chrome devtools或其他工具的网络选项卡。
你可以在Google Chrome中使用"Inspect element"选项,或者在Firefox中使用firebug。然后你必须点击"网络",你只需要刷新页面,你会看到一个时间轴,显示你所有脚本和其他文件的加载时间。
编辑:对不起,我看到你的问题是在硒webdriver的情况下,我没有经验。