测量Selenium中多个web元素的加载时间
我想测量微调器元素多个部分的加载时间。HTML如下所示:测量Selenium中多个web元素的加载时间,selenium,testing,selenium-webdriver,automated-tests,Selenium,Testing,Selenium Webdriver,Automated Tests,我想测量微调器元素多个部分的加载时间。HTML如下所示: <div id="loading"> <div id="spinner"> <div class="spinner-icon"></div> </div> <p class="spinner-text">Please wait</p> </div> Date t1 = new Date(); wait.
<div id="loading">
<div id="spinner">
<div class="spinner-icon"></div>
</div>
<p class="spinner-text">Please wait</p>
</div>
Date t1 = new Date();
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#loading")));
Date t2 = new Date();
long duration = t2.getTime() - t1.getTime();
但是,我可以使用交织的等待吗?我可以在一个脚本中完成此操作吗?正在寻找类似的内容吗
long[] loadTime = wait.until(new Function<WebDriver, long[]>() {
Date start = new Date();
long[] loadTimes = new long[] { 0, 0, 0, 0 };
String[] selectors = new String[] { "#loading", "#spinner", "#spinner .spinner-icon", "#spinner .spinner-text" };
@Override
public long[] apply(WebDriver t) {
int invisible = 0;
for (int i = 0; i < selectors.length; i++) {
if (!t.findElement(By.cssSelector(selectors[i])).isDisplayed()) {
if (loadTimes[i] == 0) {
loadTimes[i] = new Date().getTime() - start.getTime();
}
invisible++;
}
}
return invisible == 4 ? loadTimes : null;
}
});
long[]loadTime=wait.until(新函数(){
开始日期=新日期();
long[]loadTimes=新的long[]{0,0,0,0};
字符串[]选择器=新字符串[]{“#加载”、“#微调器”、“#微调器.微调器图标”、“#微调器.微调器文本”};
@凌驾
公共长[]应用(WebDriver t){
int=0;
for(int i=0;i
如何在单个脚本中获取所有元素(#微调器
,。微调器图标
,。微调器文本
和#加载
),并检查所有元素的可见性?这是不是太过分了?通常只查看顶级元素,甚至您的库也通常只设置顶级元素的可见性。在本例中#spinner.嗯,我试图测试#spinner
或.spinner text
是否首先加载,因为我怀疑这里发生了一些奇怪的事情。这就是我想要找出的,因为我假设所有的元素都在同一时间在页面上可见,但是根据我等待的元素,我得到的结果不同。