如何检查是否为量角器e2e测试选中了复选框

时间:2014-11-26 19:25:22

标签: checkbox protractor angularjs-e2e

我正在尝试检查是否已选中复选框,如果没有,请检查它。无论如何,我永远无法检查它,因为它永远不会到达click()。请参阅下面的代码。

这是量角器测试中的代码:

//find item
var useSslInput = $('#useSsl');
if(newDirectory.useSsl == true){
       if(!useSslInput.isSelected()){
            useSslInput.click();
         }
         var sslInput = $('#sslCertificate');
         sslInput.sendKeys(newDirectory.sslCertificate);
} else {
         if(!useSslInput.isSelected()){
           useSslInput.click();
         }
}

html如下:

<div class="field">
 <label class="field-label" for="useSsl">{{::'directory.page.add.label.useSsl' |i18n}}</label>
<div class="field-input"><input id="useSsl" name="useSsl" type="checkbox" ng-model="addEditDirectory.directory.useSsl" ng-checked="addEditDirectory.directory.useSsl"></div>
</div>

我在这里做错了吗?

1 个答案:

答案 0 :(得分:6)

了解使用承诺:http://www.html5rocks.com/en/tutorials/es6/promises/

在您的特定情况下,您需要以下内容:

var useSslInput = $('#useSsl');
if(newDirectory.useSsl == true) {
  useSslInput.isSelected().then(function(selected) {
    if (!selected){
       useSslInput.click();
    }
    var sslInput = $('#sslCertificate');
    sslInput.sendKeys(newDirectory.sslCertificate);
  });
} else {
  useSslInput.isSelected().then(function(selected) {
    if (!selected) {
      useSslInput.click();
    }
  });
}