Javascript 量角器等待条件在超时后不应失败
如果元素不可见,是否可以等待Javascript 量角器等待条件在超时后不应失败,javascript,angularjs,selenium-webdriver,webdriver,protractor,Javascript,Angularjs,Selenium Webdriver,Webdriver,Protractor,如果元素不可见,是否可以等待ExpectedConditions.visibilityOf而不出现故障?我想处理一种情况,在这种情况下,一个按钮可能通过动画变得可见,然后单击它离开 browser.wait(conditions.visibilityOf(button), 500).then(function (visible) { if (visible) { return button.click().then(function () {/*...*/});
ExpectedConditions.visibilityOf
而不出现故障?我想处理一种情况,在这种情况下,一个按钮可能通过动画变得可见,然后单击它离开
browser.wait(conditions.visibilityOf(button), 500).then(function (visible) {
if (visible) {
return button.click().then(function () {/*...*/});
}
});
我发现,我可以处理
wait
返回的拒绝承诺来抑制超时错误:
browser.wait(conditions.visibilityOf(button), 500).then(function () {
// It is visible
return button.click().then(function () {/*...*/});
}, function() {
// It is not visible
if (shouldExpectVisibility) {
// If I want to fail, I could reject again
return protractor.promise.rejected('No such button');
}
else {
// If I don't want to fail, I do nothing
}
});
我发现,我可以处理
wait
返回的拒绝承诺来抑制超时错误:
browser.wait(conditions.visibilityOf(button), 500).then(function () {
// It is visible
return button.click().then(function () {/*...*/});
}, function() {
// It is not visible
if (shouldExpectVisibility) {
// If I want to fail, I could reject again
return protractor.promise.rejected('No such button');
}
else {
// If I don't want to fail, I do nothing
}
});
为什么不直接使用
浏览器。等等(500)
?它将等待500毫秒,然后执行其后的任何操作,而不管元素的可见性如何。然后,您可以尝试选择元素或检查其可见性。@JeremyThille可能,但它将始终等待500毫秒,即使按钮在1毫秒后可见。为什么不使用浏览器。等待(500)
?它将等待500毫秒,然后执行其后的任何操作,而不管元素的可见性如何。然后您可以尝试选择元素或检查其可见性。@JeremyThille可能,但它将始终等待500毫秒,即使按钮在1毫秒后可见。谢谢!帮助解决了我今天遇到的同一个问题!谢谢帮助解决了我今天遇到的同一个问题!