在.isVisible函数中使用webdriver.io .click() - JAVASCRIPT

时间:2016-09-23 05:59:14

标签: node.js click webdriver-io

我使用node js,selenium server standalone with chromedriver和webdriver.io

我想说,如果我的脚本在其上使用.isVisible的buttonxyz .isExisting.click()。如果该按钮不存在,则该函数将被忽略。

所以webdriver.io告诉我这个

client.isExisting('#someRandomNonExistingElement').then(function(isExisting) {
        console.log(isExisting); // outputs: false
})

我想要一个像这样的结构

client.isExisting('#someRandomNonExistingElement').then(function(isExisting) {
        client.click('#someRandomNonExistingElement')
})

但它不适合我。脚本在不存在按钮的页面上停止,如果CSS选择器存在,则该功能不起作用。

然后我尝试了类似

的东西
.isExisting('.buttoncsshere').click('buttoncsshere')

使用此代码,如果按钮存在,则单击该按钮,但如果该按钮不存在,则脚本将停止工作。对不起,我是一个新手代码女孩,你可以帮我吗

编辑:这是我的解决方案

.isVisible('css').then(function(isVisible) {

    if (isVisible) {
        client
        .click('css')
        .pause(1000)
    } 
})

1 个答案:

答案 0 :(得分:1)

使用pause()会破坏测试的稳健性。特别是如果您遇到网络延迟问题。你真的应该使用waitForVisiblehttp://webdriver.io/api/utility/waitForVisible.html

client.waitForVisible('css')
      .click('css')