如何使用量角器检查转发器中的复选框

时间:2016-06-01 03:21:07

标签: angularjs testing protractor end-to-end

我无法使用量角器检查AngularJs转发器中的复选框。

该模型如下所示:

environments: [
                {
                    name: 'Proof of Concept',
                    checked: false
                },
                {
                    name: 'Non-Production',
                    checked: false
                },
                {
                    name: 'Production',
                    checked: false
                }
            ]

这样的观点:

<div class="checkbox" ng-repeat="environment in vm.assessment.environments">
  <label><input type="checkbox" ng-model="vm.assessment.environments[$index].checked" ng-click="vm.checkboxChanged()" ng-required="!vm.someChecked">{{environment.name}}</label>


</div>

我在量角器中得到转发器是这样的:

this.environments = element.all(by.repeater('environment in vm.assessment.environments'));

尝试检查这样的复选框,但是当我运行测试时,它似乎没有检查它:

this.environments.get(0).click();

2 个答案:

答案 0 :(得分:2)

  

尝试检查这样的复选框,但是当我运行测试时,它似乎没有检查它:

那是因为你点击了转发器项 - div元素,但是我怀疑需要点击input子元素。

您可以在单个表达式中链接 .all().element()次调用:

this.environments.first().element(by.css("input[ng-model$=checked]")).click();

答案 1 :(得分:1)

尝试使用以下代码点击复选框。

var repeaterElement = element.all(by.repeater('environment in vm.assessment.environments'))

repeaterElement.then(function (ElementArray) {
  for(i = 0; i < ElementArray.length; i++) {
    ElementArray[i].all(by.tagName('input')).get(0).click();
    browser.sleep(1000);
  }
})