测量Selenium中多个web元素的加载时间

测量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.

我想测量微调器元素多个部分的加载时间。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.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
是否首先加载,因为我怀疑这里发生了一些奇怪的事情。这就是我想要找出的,因为我假设所有的元素都在同一时间在页面上可见,但是根据我等待的元素,我得到的结果不同。