【问题标题】:using protractor to get the disabled attribute on button not working使用量角器获取按钮上的禁用属性不起作用
【发布时间】:2016-05-07 05:13:50
【问题描述】:

我试图在一个按钮上设置禁用属性,它应该是“禁用”的,但我似乎没有得到价值。角度和量角器的新手!

当我检查页面时,我得到的 HTML 显示禁用的按钮被禁用,就像它在页面上一样:

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

下面的量角器测试返回'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");

当我尝试时,我期望 '' 等于禁用。

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

任何想法我哪里出错了?

谢谢

【问题讨论】:

  • 我想知道isEnabled()(或承诺的not 版本)是否可以确定禁用?

标签: javascript angularjs unit-testing selenium protractor


【解决方案1】:

getAttribute() 量角器中的函数以 promise 的形式返回值。因此,您要么等到它返回然后执行验证,要么您可以将函数传递给expectation,这反过来又解决了承诺。 disabled html 属性是 boolean attribute,因此它返回的值是 truefalse。方法如下-

element(by.css('.primary')).getAttribute('disabled').then(function(attr){
    expect(attr).toBe(true);
});

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

希望对你有帮助。

【讨论】:

  • 谢谢。但我只能让它等于“真”。所以某处 disabled="true" 正在被捡起。 element(by.css('.primary')).getAttribute('disabled').then(function (attr) { expect(attr).toBe("true"); });
  • @thegunner disabled 属性没有分配任何值作为布尔属性。在这种情况下,您可以通过检查值是否为真来检查属性名称的存在。更新答案相同。谢谢
  • @thegunner disabled 属性没有分配任何值作为布尔属性。在这种情况下,您可以通过检查值是否为真来检查属性名称的存在。更新答案相同。谢谢
猜你喜欢
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 2019-09-05
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多