Sono nuovo di AngularJS/goniometro quindi qualsiasi consiglio su questo è molto apprezzato. Poiché Angular JS istanzia elementi html tramite le direttive ng, non ci sono "id" che mi consentono di localizzare elementi specifici. (Ovviamente voglio fare questo contenuto per convalidare, clic su di essi, ecc) miei js angolari snippet assomiglia:Come trovare elementi html specifici, AngularJS, goniometro
<div ng-repeat="item in myList">
<span ng-if="item.category == 'lights'">
<img src="../../../{{item.icon}}"/>
 <span id="foo">{{item.name}}</span> 
</span>
</div>
che sto cercando di individuare gli elementi {{}} item.name come ho iterare la lista con questo:
element.all(by.repeater('item in myList')).then(function(rows) {
noOfItems = rows.length;
for (i = 0; i < noOfItems; i++) {
row = element.all(by.repeater('item in myList')).get(i);
row.isElementPresent(By.id('foo')).then(function (isP) {
if (isP) {
console.log("foo exists?" + isP);
row.findElement(By.id('foo')).then(function (el) {
el.getText(txt).then(function (txt) {
console.log("Item name " + txt);
});
});
}
});
}
});
Dalla ispezione l'elemento 'riga' sembra essere oggetto di selenio così invoco 'isElementPresent (...) e questo funziona alla grande. Rileva il numero corretto di elementi "pippo". Tuttavia, quando viene eseguito row.findElement (...), la specifica del test termina prematuramente. (Nessun errore, finisce)
So che ci saranno più elementi "pippo" nel documento, ma speravo che dal momento che vengano interrogati all'interno di un elemento sub html, (riga) questo potrebbe funzionare.
Eventuali suggerimenti/soluzioni alternative?
strano, row.findElement (...) dovrebbe generare un errore, perché è un array e non dovrebbe avere la funzione findElement. row [0] .findElement dovrebbe funzionare. "foo esiste?" appare nel log della console? – nilsK