Angularjs 如何使用量角器检查中继器中的复选框

Angularjs 如何使用量角器检查中继器中的复选框,angularjs,testing,protractor,end-to-end,Angularjs,Testing,Protractor,End To End,我很难用量角器检查AngularJs中继器中的复选框 模型如下所示: environments: [ { name: 'Proof of Concept', checked: false }, { name: 'Non-Production',

我很难用量角器检查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>
这样的观点:

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.get(0).click();
尝试像这样选中复选框,但当我运行测试时,它似乎没有选中它:

this.environments.get(0).click();
这是因为您正在单击repeater项--
div
元素,但我怀疑您需要单击
input
子元素

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

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

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

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);
  }
})
var repeaterElement=element.all(by.repeater('vironment in vm.assessment.environments'))
repeaterElement.then(函数(ElementArray){
对于(i=0;i
alecxe是正确的,和往常一样:)也尝试一下这种语法,我更喜欢使用$:this.environments.first()。$(“输入[ng模型*='environments'])。单击();