2014-05-11 5 views
5

mam tej tabeliKliknięcie na <a> w tabeli powtórzeń Ng. Kątomierz E2E-test kątowe

<table class="table"> 
     <thead> 
     <tr> 
     <th class="col-sm-5">Actions</th> 
     <th class="col-sm-5">Title</th> 
     <th class="col-sm-2">Saved</th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr ng-repeat="calc in calculations"> 
     <td> 
      <a class="btn btn-default btn-sm" ng-click="removeCalculation(calc.calcId)"> 
      <i class="fa fa-trash-o"></i> 
      </a> 
      <a class="btn btn-default btn-sm" href="#"> 
      <i class="fa fa-bar-chart-o"></i> 
      </a> 
      <a class="btn btn-default btn-sm" ng-href="#/user/{{user.userId}}/calculation/{{calc._id}}"> 
      <i class="fa fa-folder-o"></i> 
      </a> 
      <a id="copyCalcButton" class="btn btn-default btn-sm" ng-click="copyCalculation(calc.calcId)"> 
      <i class="fa fa-copy"></i> 
      </a> 
     </td> 
     <td>{{calc.title}}</td> 
     <td>{{calc.savedAt}}</td> 
     </tr> 
     </tbody> 
    </table> 

Chcę e2e mój copyCalculation-feature. Więc najpierw chcę sprawdzić mój długość mojego tablicy:

var nrOfCalc = browser.element.all(by.repeater('calc in calculations')).count(); 

chciałbym wcisnąć pierwszy element w moim stole, a następnie sprawdzić, czy jest jeszcze jedna pozycja w m y tablicy.

Jak mogę kliknąć na pierwszy element w moim stole?

Próbowałem czegoś takiego, ale utknąłem.

var firstRowIn; 
browser.findElements(protractor.By.tagName('tr')).then(function(rows){ 
    firstRow = rows[0]; 
}); 

Niektóre pseudokod:

firstRow...click('on the id="copyCalc") 

wdzięczni za każdą pomoc!

Odpowiedz

9

Spróbuj tego:

element(by.repeater('calc in calculations').row(0)).$('#copyCalc').click() 

lub

element(by.repeater('calc in calculations').row(0)).element(by.css('#copyCalc')).click() 
0
browser.findElements(protractor.By.repeater('calc in calculations').then(function (table) { 
    table.findElements(protractor.By.tagName('tr').then(function(rows) { 
     //firstRow = rows[0]; 
     row[0].click(); 
    }); 
}); 

Mam nadzieję, że to pomaga.

4

Odpowiedź Andre jest bliska. Trzeba tylko użyć numeru get() zamiast row():

element(by.repeater('calc in calculations').get(0)).$('#copyCalc').click()