var rows = element.all(by.repeater('row in tabledata.display.body'));
You can only use the method expect() to check the value:
expect( rows.count()).toEqual(4);
But you cannot use the value '4' for e.g. in a loop! You have to use the so-called .then() method of promise to resolve, like this:
var rows = element.all(by.repeater('row in tabledata.display.body'));
rows.count().then( function(nrRows) { //nrRows=rows.count()
for(var i=0; i<nrRows; i++){
// do somthing with your loop
}
})
If you need more than one value, then you may nest the .then() method, like this:
var rows = element.all(by.repeater('row in tabledata.display.body'));
var cells = element.all(by.repeater('cel in row'));
row.count().then( function(nrRows) { //nrRows=rows.count()
cells.count().then( function(nrCells){ //nrCells=cells.count()
for (var i=0; i<nrRows; i++){
// do something with your loop
}
// call a function using nrRows and nrCells
if( nrRows > 0){
func(nrRows, nrCells);
}
else{
console.log('No rows in the table!');
}
})
})
You may use the method .all() to simplify the code, like this:
var rows = element.all(by.repeater('row in tabledata.display.body'));
var cells = element.all(by.repeater('cel in row'));
q.all([row.count(), cells.count()]).spread(function(nrRows, nrCells){
for (var i=0; i<nrRows; i++){
// do something with your loop
}
// call a function using nrRows and nrCells
if( nrRows > 0){
func(nrRows, nrCells);
}
else{
console.log('No rows in the table!');
}
})
Some similar ideas can be found here.--- End of blog ---
No comments:
Post a Comment