Protractor 确认元素在量角器中消失
出于等待目的,我使用此类等待函数:Protractor 确认元素在量角器中消失,protractor,angularjs-e2e,Protractor,Angularjs E2e,出于等待目的,我使用此类等待函数: browser.wait(function() { return browser.isElementPresent(by.repeater('recentName in recentNames').row(0)); }, 10000); 如何等待元素从页面中消失?我有一个项目,它有很多模态窗口,因为元素总是出现在页面上,我有时会遇到困难和测试失败,因为我使用了错误的元素等待。例如,我有这样的元素,当模式窗口在单击Ent
browser.wait(function()
{
return browser.isElementPresent(by.repeater('recentName in recentNames').row(0));
}, 10000);
如何等待元素从页面中消失?我有一个项目,它有很多模态窗口,因为元素总是出现在页面上,我有时会遇到困难和测试失败,因为我使用了错误的元素等待。例如,我有这样的元素,当模式窗口在单击Enter后关闭时消失:
<div class="modal-backdrop in"></div>
您可以使用自定义帮助器函数,该函数通过不可见或不存在来主动等待元素消失
该帮助程序最多等待specTimeoutMs
忽略无用的webdriver错误,如StaleElementError
用法:添加require('./wait缺席.js')代码>在块或文件中
等待模态消失的示例:
expect($('.modal-backdrop.in').waitAbsent()).toBeTruthy();
如果元素已经存在于页面上,您可以使用回调:D,利用browser.wait()
轮询页面,直到传递给它的函数计算为true
browser.wait(function()
{
return browser.isElementPresent(by.repeater('recentName in recentNames').row(0)) //if element is already present, this line will evaluate to true
.then(function(presenceOfElement) {return !presenceOfElement}); // this modifies the previous line so that it evaluates to false until the element is no longer present.
}, 10000);
现在推荐使用量角器。您可以将它与browser.wait结合使用,为各种状态创建等待条件,其中包括元素的不可见性(如果隐藏)或元素的过时性(如果从DOM中删除)
browser.wait( EC.invisibilityOf( $('#selector') ), 5000 );
我可以确认,这是目前解决此问题的最佳解决方案。非常感谢,利奥!