如果元素不可见,是否可以在ExpectedConditions.visibilityOf
上等待而不会出现故障?我想处理一种情况,通过动画可以看到 按钮,然后点击它。
browser.wait(conditions.visibilityOf(button), 500).then(function (visible) {
if (visible) {
return button.click().then(function () {/*...*/});
}
});
答案 0 :(得分:11)
我发现,我可以处理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
}
});