我正在使用 selenium-webdriverjs。我想等待显示某个元素,我已为其创建了显式等待,如下所示,它工作得很好,
var displayed = false;
driver.wait(function(){
driver.findElement(locator).isDisplayed().then(function(value){
displayed = value;
});
return displayed;
}, timeout);
这是我能做的最好的事情还是有更好的方法?我问的原因是第一次调用等待回调(在我的例子中)它总是返回 false。只有随后执行 isDisplayed 承诺时,显示的值才会发生变化。
您的代码将同步返回与异步回调混合在一起,以下代码应该做正确的事情:
return driver.wait(function() {
return driver.findElement(locator).isDisplayed();
}, timeout);
内部函数将返回一个承诺driver.wait
将等待并以其值(真/假)作为等待条件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)