Scrivo i test del goniometro e mi piace, anche se a volte sembra di essere coinvolto in qualcosa che sembra come se fosse semplice. Ad esempio, voglio scorrere tutti i pulsanti di una delle nostre pagine che contengono il testo di "Nominate". Ci sono dozzine sulla pagina, ma solo 1 o 2 saranno visibili. Quindi voglio fare clic sul primo che è. Ecco il codice che sto utilizzando attualmente:Seleziona il primo elemento visibile nel goniometro
var nominateButtons = element.all(by.buttonText('Nominate'));
nominateButtons.then(function(els){
for(var x = 0;x < els.length;x++){
//Since isDisplayed returns a promise, I need to do it this way to get to the actual value
els[x].isDisplayed().then(function(isVisible){
//isVisible now has the right value
if(isVisible){
//But now els is not defined because of the scope of the promise!!
els[x].click();
}
});
}
});
Quando ho eseguito questo codice, ottengo un 'non può chiamare il metodo click del non definito' errore, perché els [x] non è più in campo di applicazione, ma posso' Sembra che controlliamo la visibilità senza usare la promessa. Quindi la mia domanda è: come è possibile scorrere una serie di elementi, controllarne la visibilità e fare clic sulla prima che è visibile? (Sto cercando di non utilizzare una di check visibilità perché so che la maggior parte dei pulsanti non saranno visibili)
Grazie in anticipo
Grazie mille. Ho combattuto con questo tutto il giorno. Non solo non mi rendevo conto che x era il colpevole, non ero a conoscenza della prima() funzione a cui ti riferivi, quindi sono molto grato. Sono consapevole che fare clic sul primo elemento non è una buona idea e normalmente lo eviterei. Questo è un po 'strano, però, e in realtà dovrebbe funzionare, anche se sono consapevole che potrei finire per mordermi la lingua. In ogni caso, apprezzo molto che tu abbia trovato il tempo di rispondere. Ha finalmente funzionato il mio test case e mi ha insegnato un paio di cose lungo la strada. Sono un ragazzo pitone e abbastanza nuovo per JS e promette – user2233949
Prego. Dovresti accettare la risposta se ti ha aiutato invece di rispondere in una nuova risposta però =) – hankduan
Non sapevo che avremmo potuto concatenare elemento - grazie – mrwaim