Protractor - count elements in repeater and print it
Asked Answered
G

2

22

I'm trying to count the elements in repeater and to print it to console.

This is the markup:

<div class="col-md-3 ng-scope" ng-repeat="app in userApps" >...< /div> 

currently I'm counting and comparing:

expect(element.all(by.repeater('app in userApps')).count()).toEqual(4);

it works, but I want to be able to print it also.

I've tried this:

var rows = element.all(by.repeater("app in userApps"));
var sum = rows.count(); 
console.log(sum.getText());

but I'm getting:

TypeError: Object [object Object] has no method 'getText'

there are two question actually- 1. am I doing it the correct way? 2. how do I print it to console?

Gouveia answered 21/1, 2015 at 14:55 Comment(0)
S
46

If I understand your problem correctly, you actually want to print the count and not the entire content, right?

element.all(by.repeater('app in userApps')).count().then(function(count) {
  console.log(count);
});
Stranglehold answered 21/1, 2015 at 19:30 Comment(2)
you are right. it is what i meant. but now, with your code I'm getting this error immediately: SyntaxError: Unexpected identifier Stacktrace: SyntaxError: Unexpected identifier at require (module.js:380:17) at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:650:9)Gouveia
it Works! just needed to add ';' and ');' : element.all(by.repeater('app in userApps')).count().then(function(count) { console.log(count); }); thanks a lot!Gouveia
C
0

the more 'modern' way of doing this is using async/await

it('test case', async () => {
  let count = await element.all(by.repeater('app in userApps')).count();
  console.log(count);
});
Combined answered 9/2, 2021 at 22:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.