2016-06-01 58 views
1

我在使用量角器检查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

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

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

您可以在一个单一的表达.all().element()电话:

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

alecxe是正确的,像往常一样:) 也可以尝试这个语法,我更喜欢使用$: this.environments.first()$( “输入[NG-模型* = '环境']” )。单击(); – Xotabu4

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); 
    } 
}) 
相关问题