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?
De los documentos: 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();
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'');