Dies ist eine alte Frage, aber da ich nach dem vollständigen Laden von Seiten gesucht habe, aber nach Spookyjs (das casperjs und phantomjs verwendet) und meine Lösung nicht gefunden habe, habe ich dafür mein eigenes Skript erstellt, mit dem gleichen Ansatz wie der Benutzer deemstone. Dieser Ansatz bewirkt, dass die Seite für eine bestimmte Zeitspanne die Ausführung beendet, wenn sie keine Anforderung erhalten oder gestartet hat.
Fügen Sie in der Datei casper.js (wenn Sie sie global installiert haben, lautet der Pfad etwa /usr/local/lib/node_modules/casperjs/modules/casper.js) die folgenden Zeilen:
Am Anfang der Datei mit allen globalen Variablen:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Dann innerhalb der Funktion "createPage (casper)" direkt nach "var page = require ('webpage'). Create ();" Fügen Sie den folgenden Code hinzu:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
Fügen Sie dann in "page.onResourceReceived = function onResourceReceived (resource) {" in der ersten Zeile Folgendes hinzu:
resetTimeout()
Machen Sie dasselbe für "page.onResourceRequested = function onResourceRequested (requestData, request) {"
Schließlich fügen Sie in der ersten Zeile unter "page.onLoadFinished = function onLoadFinished (status) {" Folgendes hinzu:
if(!reqResFinished)
{
return
}
reqResFinished = false
Und das war's, hoffe, dieser hilft jemandem in Schwierigkeiten wie ich. Diese Lösung ist für Casperjs, funktioniert aber direkt für Spooky.
Viel Glück !