2016-06-01 55 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); 
    } 
}) 
相關問題