Esta es una vieja pregunta, pero como estaba buscando la carga de la página completa, pero para Spookyjs (que usa casperjs y phantomjs) y no encontré mi solución, creé mi propio script para eso, con el mismo enfoque que el usuario deemstone. Lo que hace este enfoque es que, durante un período de tiempo determinado, si la página no recibió o inició alguna solicitud, finalizará la ejecución.
En el archivo casper.js (si lo instaló globalmente, la ruta sería algo así como /usr/local/lib/node_modules/casperjs/modules/casper.js) agregue las siguientes líneas:
En la parte superior del archivo con todos los vars globales:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Luego dentro de la función "createPage (casper)" justo después de "var page = require ('webpage'). Create ();" agregue el siguiente código:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
Luego, dentro de "page.onResourceReceived = function onResourceReceived (resource) {" en la primera línea, agregue:
resetTimeout()
Haga lo mismo para "page.onResourceRequested = function onResourceRequested (requestData, request) {"
Finalmente, en "page.onLoadFinished = function onLoadFinished (estado) {" en la primera línea, agregue:
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 !