出于等待目的,我使用了这种等待功能:
browser.wait(function()
{
return browser.isElementPresent(by.repeater('recentName in recentNames').row(0));
}, 10000);
我如何等待元素从页面中消失?我的项目有很多模态窗口,因为元素总是出现在页面上我不时遇到困难和测试失败,因为我使用了错误的元素等待。例如,我有这样的元素,在单击回车后关闭模态窗口时消失:
<div class="modal-backdrop in"></div>
答案 0 :(得分:10)
现在推荐使用量角器ExpectedConditions来实现此目的。您可以将它与browser.wait
结合使用,为各种状态创建等待条件,其中包括invisibilityOf
(如果被隐藏)或stalenessOf
(如果从DOM中删除)元素。
browser.wait( EC.invisibilityOf( $('#selector') ), 5000 );
答案 1 :(得分:5)
您可以使用自定义waitAbsent()辅助函数,该函数通过变为不可见或不存在来主动等待元素消失。
该帮助程序等待specTimeoutMs
忽略无效的webdriver错误,例如StaleElementError
。
用法:在onPrepare块或文件中添加require('./waitAbsent.js');
。
等待模态消失的示例:
expect($('.modal-backdrop.in').waitAbsent()).toBeTruthy();
答案 2 :(得分:1)
如果元素已经出现在页面上,那么你可以使用回调来解决问题:D,利用browser.wait()
轮询页面的事实,直到传递给它的函数计算为{{1} }。
true