Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在量角器中等待按钮禁用状态?_Javascript_Angularjs_Jasmine_Protractor - Fatal编程技术网

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

Javascript 如何在量角器中等待按钮禁用状态?,javascript,angularjs,jasmine,protractor,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)); 在我的情况下,表单验证执行得太

下面的代码等待元素出现:

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

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.presenceOf(elm), 5000);
    elm.click();
用于检查按钮是否已启用的代码,该代码可用于单击:

    expect(elm.isEnabled().toBe(false));
在我的情况下,表单验证执行得太快。因此,按钮的启用和禁用有点慢。无法捕获元素的状态。上述两种情况均不适用于检查按钮是否被禁用


如何检查按钮禁用状态而不是使用
浏览器。sleep(1000)

在我的例子中,我创建了一个新的递归函数来确定它是否已启用/存在

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次。
希望有帮助。:)