Ich versuche CasperJS zu testen, und eine Website sind Schaben, die ein Raster-Layout wie hat:Iterieren über ein Gitter mit CasperJS
|Name |Name |
|Title |Title |
|Image |Image |
|Something |Something |
|----------------------
|Name |Name |
|Title |Title |
|Image |Image |
|Something |Something |
|----------------------
Wenn ich nicht CasperJS verwenden würde ich eine Liste aller abrufen Das enthält (in diesem Fall 4) und führt dann für jeden Container eine Methode aus, mit der ein Objekt mit den gewünschten Eigenschaften abgerufen werden kann.
Ich habe nur eine harte Zeit, dies in CasperJS zu tun. Zuerst habe ich versucht, die Liste der DOM-Elemente in casper.evaluate (function() {....} zurückzugeben, aber es kann keine DOM-Elemente zurückgeben.
Dann habe ich versucht, eine jede Schleife zu machen, die die gewünschten Objekte (4) zu einem Array schieben und es in einem Evalue zurückgeben würde, aber es immer Null zurückgibt.
Wie würde man in CasperJS so etwas machen? Kann ich irgendwie einen Kontext eines Containers an eine Methode zurückgeben, die das Objekt an die Hauptauswertung zurückgeben kann, die die Sammlung der Objekte zurückgeben kann?
Sie schlagen Ihren Kopf gegen das Hauptkonzept von Casper. Die Trennung zwischen Server und Client JS. Außerhalb von evaluate ist es nur Server, kein DOM. Die Brücke sind die serialisierbaren Objekte. Die zwei Antworten erklären es gut. Beachten Sie, wie die Funktion getLinks im Beispiel ein Array von Strings zurückgibt, nicht DOM nodes.http: //docs.casperjs.org/en/latest/quickstart.html –