如何等待进度条消失?

时间:2019-01-21 14:52:14

标签: protractor

我要进入窗口,等到元素出现。问题是,当我进入此窗口时,此元素存在且可单击,但是在很短的进度条选择器之后,窗口被阻塞,直到此进度条工作为止。如何正确等待元素?

我尝试了以下代码,但没有用,但是它显示了我想要获得的内容(单击addButton,等待进度条或5秒过去,然后等待显示的元素ID。

this.openWindow = function(addButton, progressbar, targetElement){
    addButton.click().then(function(){
        browser.driver.wait(progressbar.isDisplayed(), 5000).then(function(){
            browser.driver.wait(targetElement.isDisplayed(), 5000);
        });
    });
};

1 个答案:

答案 0 :(得分:0)

结帐official documentation for stalenessOf

您应该执行类似的操作

this.openWindow = function(addButton, progressbar) {
    var EC = protractor.ExpectedConditions;
    return addButton.click().then(function(){
        return browser.driver.wait(EC.stalenessOf(progressbar), 5000, 'Progress bar was not hidden within 5 sec');
    });
};

然后您可以像这样使用您的函数

openWindow(addButton, progressbar).then(...)

上面的代码将在进度条被隐藏时解决,或者在超时后失败。

如果进度条没有从DOM中完全删除,您也可以尝试invisibilityOf