Non ho trovato le risposte sopra per essere utile alla mia causa.
Penso che l'obiettivo fosse contare il numero di elementi senza dover valutare il codice js nel contesto della pagina, il che potrebbe essere frustrante per gli straordinari e avere variabili e funzioni in conflitto.
Invece, sarebbe bello sfruttare il contesto di automazione di Casper. Questo può essere fatto con una combinazione di ".exists()" e il css pseudo-selettore ": nth-of-type (i)"
Il seguente codice fa ...
var counter = 1; //set to one, for css selector setup
casper.then(function() { //wait your turn
//loop through our element
while(casper.exists('div span:nth-of-type(' + counter + ')')) {
counter++; //count the results
}
});
Potresti rendere questa una funzione e passare tutti gli argomenti, o semplicemente copiarla e incollarla come un passo.
La parte migliore, è possibile seguirla con un'istruzione ripetuta per un ciclo piuttosto interessante.
casper.then(function(){
this.repeat(counter, function() {
console.log("Another one - item #" + counter);
});
});
fonte
2017-02-10 05:37:01
Penso che devi creare la tua funzione per questo. Sembra che il modo più semplice per farlo sia controllare se l'elemento esiste e usare il css ": nth-of-type (i)". Ho postato una risposta qui sotto per questo. –