Selenium WebDriver JS - 显式等待

2023-12-29

我正在使用 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(使用前将#替换为@)

Selenium WebDriver JS - 显式等待 的相关文章

随机推荐