for example cloak array angularjs protractor angularjs-e2e

angularjs - example - ng-repeat array



Transportador encontrar elemento dentro de un repetidor. (5)

Abajo esta mi marca

<tr ng-repeat="post in posts"> <td ng-click="activePost(post)" class="title">{{post.title}}</td> <td><button class="btn btn-danger" ng-click="delete(post)">Delete</button> </td> </tr>

Estoy tratando de obtener el elemento con la clase de title .

El código que utilizo para acceder al repetidor es:

postsList = element.all(by.repeater(''post in posts''));

¿Hay alguna manera de obtener el elemento haciendo algo como lo siguiente en jQuery:

var titleText = $("tr:first").find(".title").text();

¿Hay una manera de hacer algo similar a esto con un transportador?



Debe encontrar un elemento dentro de una matriz como se explica aquí 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();


Esto debería funcionar para tu ejemplo:

element.all(by.repeater(''post in posts'')).then(function(posts) { var titleElement = posts[0].element(by.className(''title'')); expect(titleElement.getText()).toEqual(''YourEnteredTitle''); });


La respuesta de me ayudó, pero no funcionó completamente. El siguiente código hizo el truco:

element.all(by.repeater(''post in posts'')).then(function(posts) { var titleElement = posts[0].element(by.className(''title'')); expect(titleElement.getText()).toEqual(''YourEnteredTitle''); });


Una solución aún mejor:

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