使用量角器来获取按钮上的禁用属性不起作用

the*_*ner 5 javascript selenium unit-testing angularjs protractor

我试图让一个按钮上的残疾人attr它应该被"禁用",但我似乎没有得到这个价值.角度和量角器的新手!

当我检查页面时,这就是我为禁用的按钮获取的HTML被禁用,就像在页面上一样:

 <button type="submit" class="button primary inverse" ng-disabled="!comment.$dirty && comment.$valid" disabled="disabled">Save</button>
Run Code Online (Sandbox Code Playgroud)

下面的量角器测试返回'Expected null to equal disabled'

    var btnSave = element(by.css('.primary'));
    expect(btnSave.isPresent()).toBeTruthy();

    var attr = element(by.css('.primary')).getAttribute('disabled');

    expect(attr).toEqual("disabled");
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我得到预期''等于残疾.

expect(attr).toEqual("disabled");
Run Code Online (Sandbox Code Playgroud)

我出错的任何想法?

谢谢

Gir*_*tur 7

getAttribute()量角器中的函数以promise的形式返回值.所以要么你等到它返回然后执行验证,要么你可以将函数传递给expectation它,从而解决了这个问题.disabledhtml属性是一个布尔属性,因此它返回的值是true或false.这是如何做 -

element(by.css('.primary')).getAttribute('disabled').then(function(attr){
    expect(attr).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

要么

expect(element(by.css('.primary')).getAttribute('disabled')).toBe(true);
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.