Using Protractor with Angular2

2019-06-03 05:37发布

问题:

I have a little project in angular2 that I'm trying to write some simple tests for using protractor..

I am using a ngFor to loop round a list of 'foos' and display them on the page (simple enough).

Then I want my test to get the text of the 1st one and check to see if it's 'bar':

element.all(by.repeater('foo of foos')).get(1).then(function(x){
  expect(x.getText()).toEqual('bar');
});

But when I run my test I get:

Failed: element.all(...).get(...).then is not a function

Any idea what I doing wrong?

回答1:

The problem is that:

  • element.all(by.repeater('foo of foos')).get(1) is an ElementFinder
  • you cannot resolve ElementFinder with then() (breaking change in Protractor 2.0.0)

Instead, do:

var elm = element.all(by.repeater('foo of foos')).get(1);
expect(elm.getText()).toEqual('bar');