首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Selenium WebDriver JS -显式等待

Selenium WebDriver JS -显式等待
EN

Stack Overflow用户
提问于 2013-06-02 20:41:39
回答 1查看 38.6K关注 0票数 21

我正在使用selenium-webdriverjs。我想要等待某个元素显示出来,我为它创建了一个显式的等待,如下所示,它工作得很好,

var displayed = false;
driver.wait(function(){
    driver.findElement(locator).isDisplayed().then(function(value){
        displayed = value;
    });
    return displayed;
}, timeout);

这是我能做的最好的事情了吗?还是有更好的方法来做到这一点?我问这个问题的原因是,第一次调用等待回调时(在我的例子中),它总是返回false。只有在随后执行isDisplayed promise时,显示的值才会更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-02 20:50:23

你的代码混合了同步返回和异步回调,下面的代码应该是正确的:

return driver.wait(function() {
    return driver.findElement(locator).isDisplayed();
}, timeout);

内部函数将返回driver.wait将等待的promise,并将其值(true/false)作为等待条件。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16882860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档