2016-06-01 4 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 평소처럼 :) 의이 구하려고 내가 $를 사용하는 것이, 정확한).딸깍 하는 소리(); – Xotabu4

1

의 체크 박스를 클릭하여 아래 코드를 사용해보십시오. "입력 [NG 모델 * = '환경']" this.environments.first() $ (:.

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); 
    } 
}) 
관련 문제