Die App, die ich testen, gibt eine Liste mit einem Repeater und ich möchte in der Lage sein, eine bestimmte Zeile und den Klick auf die Bearbeitungsschaltfläche in dieser Zeile zu finden.Klicken auf ein Element in einem Repeater mit einem vorhandenen Locator
Ich verwende .filter die entsprechende Zeile zu finden und klicken Sie dann auf die Schaltfläche Bearbeiten, aber das funktioniert nur, wenn ich den Locator für die Schaltfläche festlegen, und nicht, ob ich auf eine vorhandene Definition siehe:
this.editWineButton = element(by.buttonText('edit'));
this.editWine = function (wineName) {
this.wineListEntries.filter(function(row){
return row.element(by.binding('wine.name')).getText().then(function(name){
return name === wineName;
});
}).then(function (elem) {
//THIS WORKS
var button = elem[0].element(by.buttonText('edit'));
//THIS FAILS
//var button = elem[0].editWineButton;
button.click();
});
};
Nachdem ich den Locator für die Bearbeitungsschaltfläche bereits definiert habe, was muss ich tun, um ihn mit dem Ergebnis des Filters wiederverwenden zu können?
Wenn ich die fehlerhafte Version des Codes laufen erhalte ich die Fehler
„Fehler: Kann nicht Eigenschaft‚Klick‘undefinierter lesen“.
Ich bin sicher, dass die Antwort offensichtlich sein muss, aber ich kann meinen Fehler nicht sehen. Irgendwelche Vorschläge wären sehr willkommen.