如何在量角器中等待按钮禁用状态?

时间:2017-04-25 04:31:10

标签: javascript angularjs jasmine protractor

下面的代码等待元素存在:

    var elm = element(by.css('button.submit'));

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.presenceOf(elm), 5000);
    elm.click();

检查按钮是否已启用的代码,可用于单击:

    expect(elm.isEnabled().toBe(false));

在我的条件下,表单验证执行得太快。这样按钮启用和禁用位慢。无法捕获元素的状态。以上两个条件都无法检查按钮是否被禁用。

除了使用browser.sleep(1000)

之外,如何检查按钮禁用状态

1 个答案:

答案 0 :(得分:1)

就我而言,我创建了一个新的递归函数来识别它是否已启用/存在。

function checkIfDisabled(maxSec, elm, blnDisabled) {
    if (maxSec > 0) {
        browser.sleep(1000).then(function() {
            elm.isDisabled().then(function(bln) {
                if (bln != blnDisabled) {
                    checkIfDisabled(maxSec - 1, elm, blnPresent)
                }
            });
        });
    }
}

如果您通过checkIfDisabled(10,elm,false)
它将以1秒的间隔检查对象是否被禁用10次 希望能帮助到你。 :)