angular / protractor

E2E test framework for Angular apps
http://www.protractortest.org
MIT License
8.75k stars 2.31k forks source link

by.repeater('item of items') not working with angular2 *ngFor #3205

Open jquerygeek opened 8 years ago

jquerygeek commented 8 years ago

Need to use by.repeater() with Angular2 repeater *ngFor, but seems its not working as working with angular 1.x ng-repeat.

Any suggestion please.

juliemr commented 8 years ago

This is not yet expected to work - custom locators aren't yet supported for angular 2.

gazbert commented 7 years ago

@jquerygeek - current workaround for me is to use CSS locator:

// let dashboardItems = element.all(by.repeater('exchange in exchanges')); let dashboardItems = element.all(by.css('bx-dashboard-item')); expect(dashboardItems.count()).toBe(8);

mahmoudmahdi24 commented 7 years ago

Hello,

When are you willing to implement these features ? Unfortunately, Protactor is losing its charm when we get elements with "by.css" ...

Thanks,

juliemr commented 7 years ago

This is still on the list - we're working with Angular to design the best way to create these angular specific locators going forward. It's difficult because the angular compiler does not export all the information we need (for important performance reasons), so this needs to be done carefully.

The recommendation continues to be using by.css, which I find to be versatile and concise in most situations :)

mahmoudmahdi24 commented 7 years ago

Thanks for your reply Julie !

gazbert commented 7 years ago

+1 for by.model and by.repeater - makes for less brittle and more data-driven tests. Happy to help review stuff/doc stuff/test stuff...

arunkalesh commented 7 years ago

Try this: var data = element.all(by.css('table[name=\'' + TableName + '\']')).all(by.css('tr td')); expect(data.get(0).getText()).toEqual('0');

nithinkrishnan commented 7 years ago

Any further updates regarding use of by.repeater() with Angular2 repeater *ngFor, or still we need to follow by.css?

arunkalesh commented 7 years ago

@nithinkrishnan I think we need to continue using the .css as they do not have anything yet to support for ngFor like they have for repeater.

AhmedRagheb commented 7 years ago

Any clue when this issue will be closed ?

DMadrid commented 7 years ago

^

AhmedRagheb commented 7 years ago

@DMadrid What do u means :) :) ?

JeremyIglehart commented 7 years ago

bump

liwonder commented 6 years ago

Guys, any updates?

samrantmedia commented 6 years ago

With just 2 small releases since February, Protractor doesn't seem to be getting the attention that angular is getting.

arunkalesh commented 6 years ago

As a reason even I do not prefer using protractor anymore.

TetonRaven commented 6 years ago

Is Protractor just dead now? Without the Angular integration, it's just Web Driver and might as well use Selenium at that point. With all the headaches that comes with. :-(

martintro commented 6 years ago

Is this planned to be fixed in any upcoming release?

fr0 commented 6 years ago

by.css is powerful but brittle. by.model and friends are superior in many cases -- is there any intent to implement this someday, or has the protractor team decided to drop support for these features for Angular 2+? Since this issue has been sitting untouched for 12 months, it would be nice to hear the team's current thoughts.

vonNord commented 6 years ago

It seems to me that protractor gives us a lot in the waiting/timing area that we would have to sleep() us through without.

As long as I have control over the source code for the stuff I'm testing, I can always insert id's, names or css classes to hopefully uniquely identify fields.

But support for binding and model would sure be appreciated.

ganqqwerty commented 5 years ago

Is protractor good only for angular 1? I'm kinda not sure, there's no good documentation about how to use it effectively for angular 2+