量角器:在getAttribute()的promise中检索的字符串为null

时间:2015-02-15 01:19:18

标签: angularjs selenium-webdriver promise protractor

说我必须验证复选框的状态

element(by.css('input')).getAttribute("checked").then(function(isChecked:string) {
      expect(isChecked).toEqual(pExpected.toString());
    }),

在我的测试中,我确认默认情况下已选中该复选框。这里一切都很好。然后我取消选中复选框

element(by.css('input')).click();

并调用该函数以验证该复选框未选中。这次,变量isChecked为空。我也试过了

var cb = element(by.css('input'));
cb .click().then(function(){
  cb .getAttribute("checked").then(function(isChecked:string){
    expect(isChecked).toEqual("false");
  })
});

没有任何改变。我无法理解这里发生了什么。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用类似的东西 - expect(element(by.css('input')).isSelected()).toBeFalsy()

答案 1 :(得分:0)

您可以这样做,使用isEnabled而不是getAttribute和toBeFalsy而不是toEqual来验证复选框的状态。

var cb = element(by.css('input'));
    cb .click().then(function(){
        cb .isEnabled().then(function(Checked){
            expect(Checked).toBeFalsy();
        })
    });