Essa é uma pergunta antiga, mas como eu estava procurando pelo carregamento da página inteira, mas pelo Spookyjs (que usa casperjs e phantomjs) e não encontrou minha solução, criei meu próprio script para isso, com a mesma abordagem que o usuário deemstone. O que essa abordagem faz é, por um determinado período de tempo, se a página não receber ou iniciar nenhuma solicitação, ela encerrará a execução.
No arquivo casper.js (se você o instalasse globalmente, o caminho seria algo como /usr/local/lib/node_modules/casperjs/modules/casper.js) adicione as seguintes linhas:
Na parte superior do arquivo, com todos os vars globais:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Em seguida, dentro da função "createPage (casper)" logo após "var page = require ('página da web'). Create ();" adicione o seguinte código:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
Em seguida, dentro de "page.onResourceReceived = function onResourceReceived (resource) {" na primeira linha, adicione:
resetTimeout()
Faça o mesmo para "page.onResourceRequested = function onResourceRequested (requestData, request) {"
Por fim, em "page.onLoadFinished = function onLoadFinished (status) {" na primeira linha, adicione:
if(!reqResFinished)
{
return
}
reqResFinished = false
E é isso, espero que este ajude alguém com problemas como eu. Esta solução é para casperjs, mas funciona diretamente para Spooky.
Boa sorte !