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

时间:2016-01-29 12:50:58

标签: javascript angularjs unit-testing selenium protractor

我正在尝试将残疾人attr放在一个应该被“禁用”的按钮上,但我似乎没有得到这个值。角度和量角器的新手!

当我检查页面时,这就是我禁用的按钮显示禁用的HTML,就像在页面上一样:

 <button type="submit" class="button primary inverse" ng-disabled="!comment.$dirty && comment.$valid" disabled="disabled">Save</button>

下面的量角器测试会返回'预期的null为等于禁用'

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

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

    expect(attr).toEqual("disabled");

当我尝试时,我被期望''等于残疾。

expect(attr).toEqual("disabled");

我出错的任何想法?

由于

1 个答案:

答案 0 :(得分:7)

量角器中的

getAttribute()函数以promise的形式返回值。因此要么等到它返回然后执行验证,要么你可以将函数传递给expectation,而disabled反过来解决了这个承诺。 true html属性为boolean attribute,因此返回的值为falseelement(by.css('.primary')).getAttribute('disabled').then(function(attr){ expect(attr).toBe(true); }); 。这是如何 -

expect(element(by.css('.primary')).getAttribute('disabled')).toBe(true);

OR

{{1}}

希望它有所帮助。