我使用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)
}
})
答案 0 :(得分:1)
使用pause()会破坏测试的稳健性。特别是如果您遇到网络延迟问题。你真的应该使用waitForVisible
。 http://webdriver.io/api/utility/waitForVisible.html
client.waitForVisible('css')
.click('css')