Ésta es una vieja pregunta, pero como yo estaba buscando carga de página completa pero para Spookyjs (que utiliza casperjs y PhantomJS) y no encontré mi solución, que hizo que mi propio guión para que, con la mismo enfoque que el usuario deemstone. Lo que hace este enfoque es, para una cantidad de tiempo dada, si la página no recibió o no inició ninguna solicitud, terminará la ejecución.
El archivo casper.js (si se ha instalado en todo el mundo, el camino sería algo así como /usr/local/lib/node_modules/casperjs/modules/casper.js) añadir las siguientes líneas:
Al parte superior del archivo con todos los VARs globales:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Entonces función dentro "createpage (Casper)" justo después de "página var = require ('página web') crear();". añadir el siguiente código:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
A continuación, en el interior "page.onResourceReceived = función onResourceReceived (recurso) {" en la primera línea añadir:
resetTimeout()
hacer lo mismo para "page.onResourceRequested = función onResourceRequested (RequestData, solicitud) {"
Finalmente, el "page.onLoadFinished = función onLoadFinished (status) {" en la primera línea add:
if(!reqResFinished)
{
return
}
reqResFinished = false
Y eso es todo, espero que esto ayude a alguien en problemas como yo. Esta solución es para casperjs pero funciona directamente para Spooky.
¡Buena suerte!
Pero en este caso no puedo usar una instancia de PhantomJS para cargar más de una página a la vez, ¿verdad? – nilfalse
¿onResourceRequested se aplica a solicitudes AJAX/Cross Domain? ¿O se aplica solo a css, imágenes, etc.? – CMCDragonkai
@CMCDragonkai Nunca lo he usado, pero basado en [esto] (https://github.com/ariya/phantomjs/wiki/Network-Monitoring) parece que incluye todas las solicitudes. Cita: 'Todas las solicitudes y respuestas de recursos pueden ser olidas usando onResourceRequested y onResourceReceived' – Supr