2014-05-11 15 views
5

Ho questa tabellaFare clic su <a> in una tabella di ripetizione ng. Goniometro E2E-test angolare

<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> 

voglio E2E mia copyCalculation-funzione. Quindi, prima voglio verificare la mia lunghezza del mio array:

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

La vorrei premere un primo elemento in mio tavolo e quindi verificare se v'è un altro elemento in m y array.

Come faccio a fare clic sul primo elemento nella mia tabella?

Ho provato qualcosa del genere ma mi sono bloccato.

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

Alcuni pseudo codice:

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

Apprezzo tutto l'aiuto!

risposta

9

Prova questo:

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

o

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(); 
    }); 
}); 

Speriamo che questo aiuta.

4

La risposta di Andre è vicina. Devi solo utilizzare get() anziché row():

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