我要进入窗口,等到元素出现。问题是,当我进入此窗口时,此元素存在且可单击,但是在很短的进度条选择器之后,窗口被阻塞,直到此进度条工作为止。如何正确等待元素?
我尝试了以下代码,但没有用,但是它显示了我想要获得的内容(单击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);
});
});
};
答案 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