在超时后,量角器等待条件不应该失败

时间:2016-01-12 09:43:04

标签: javascript angularjs selenium-webdriver webdriver protractor

如果元素不可见,是否可以在ExpectedConditions.visibilityOf上等待而不会出现故障?我想处理一种情况,通过动画可以看到 按钮,然后点击它。

browser.wait(conditions.visibilityOf(button), 500).then(function (visible) {
    if (visible) {
        return button.click().then(function () {/*...*/});
    }
});

1 个答案:

答案 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  
    }
});