Nie znalazłem powyższych odpowiedzi, aby pomóc mojej sprawie.
Myślę, że celem było policzenie liczby elementów bez konieczności oceny kodu js w kontekście strony, co może być frustrujące w nadgodzinach i mieć sprzeczne zmienne i funkcje.
Zamiast tego, byłoby miło wykorzystać kontekst automatyzacji Caspera. Można to zrobić za pomocą kombinacji ".exists()" i css psuedo wybieraka ": nth-of-type (I)"
Poniższy kod robi to ...
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
}
});
Możesz uczynić tę funkcję i przekazać wszystkie argumenty lub po prostu skopiować i wkleić ją jako krok.
Najlepsza część, możesz śledzić to z powtórzeniem oświadczenia dla całkiem fajnej pętli.
casper.then(function(){
this.repeat(counter, function() {
console.log("Another one - item #" + counter);
});
});
Myślę, że trzeba stworzyć do tego swoją własną funkcję. Wygląda na to, że najprostszym sposobem jest sprawdzenie, czy element istnieje i użycie css ": nth-of-type (i)". Poniżej zamieszczam odpowiedź na to pytanie. –