Protractor find element inside a repeater

后端 未结 5 1586
南笙
南笙 2020-12-09 16:06

Below is my markup


  {{post.title}}
  <         


        
相关标签:
5条回答
  • 2020-12-09 16:46

    you have to find a element inside a array as explained here https://github.com/angular/protractor/issues/877

    var items = element.all(by.repeater('userGroup in userGroups')).filter(function(item) {
         return item.element(by.binding('userGroup.name')).getText().then(function(label) {
               return label === 'MyGroupName';
         });
      });
    items.get(0).element(by.css('.buttongochose')).click();
    
    0 讨论(0)
  • 2020-12-09 16:53

    The answer from nilsK helped me, but didn't work completely. The code below did the trick:

    element.all(by.repeater('post in posts')).then(function(posts) {
       var titleElement = posts[0].element(by.className('title'));
       expect(titleElement.getText()).toEqual('YourEnteredTitle');
    });
    
    0 讨论(0)
  • 2020-12-09 16:57

    this should work for your example:

    element.all(by.repeater('post in posts')).then(function(posts) {
       var titleElement = posts[0].element(by.className('title'));
       expect(titleElement.getText()).toEqual('YourEnteredTitle');
    });
    
    0 讨论(0)
  • 2020-12-09 17:00

    An even better solution:

    expect( $$(by.repeater('post in posts')).get(0).$('.title').getText() ).toBe('Your title');

    0 讨论(0)
  • 2020-12-09 17:01

    From the docs: https://github.com/angular/protractor/blob/master/docs/locators.md

    var clickable = element.all(by.repeater('post in posts')).first().all(by.tagName('td')).first();
    
    0 讨论(0)
提交回复
热议问题