Ich versuche, CasperJS als Web-Scraper zu verwenden, und es gibt eine Seite mit Schaltflächen, die beim Klicken Daten laden. Also möchte ich zuerst auf alle diese Schaltflächen klicken und warten, bevor ich eine Abfrage mache, um alle notwendigen Daten zu erfassen.CasperJS: Wie klicken Sie auf alle ausgewählten Schaltflächen?
Das Problem ist, dass mit Casper casper.thenClick(selector)
das erste Element klickt. Aber wie iterieren Sie und klicken Sie auf jedes Element basierend auf dem Selektor?
Beachten Sie, dass diese Tasten keine IDs haben. Sie haben alle generische Klassenselektoren.
Ex.
<h3>
<span>Text 1</span>
<span>
<button class="load-btn">show</button>
</span>
</h3>
<h3>
<span>Text 2</span>
<span>
<button class="load-btn">show</button>
</span>
</h3>
<h3>
<span>Text 3</span>
<span>
<button class="load-btn">show</button>
</span>
</h3>
Und aus irgendeinem Grund casper.thenClick("h3:contains('text 1') .load-btn")
funktioniert nicht.
Sie geben die 'click' Funktion aus dem äußeren Kontext in der Seite verwendet wird. Dies funktionierte nicht mit PhantomJS 1.x. Hat sich das geändert? Ich wäre sehr überrascht, wenn das wirklich so funktioniert, wie Sie es beschreiben. –
Ich habe es wieder getestet, alles funktioniert gut, PhantomJS Version: 2.1.1 –