Це старе питання, але оскільки я шукав повне завантаження сторінок, але для Spookyjs (який використовує casperjs і phantomjs) і не знайшов свого рішення, я створив для цього свій власний сценарій, з таким же підходом, що і користувач вважає. Цей підхід робить за певний проміжок часу, якщо сторінка не отримала або не розпочала жодного запиту, вона закінчить виконання.
У файл casper.js (якщо ви встановили його в усьому світі, шлях буде чимось на зразок /usr/local/lib/node_modules/casperjs/modules/casper.js) додайте наступні рядки:
Угорі файлу з усіма глобальними параметрами:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Тоді всередині функції "createPage (casper)" відразу після "var page = requ ('webpage'). Create ();" додати наступний код:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
Потім всередину "page.onResourceReceived = функція onResourceReceived (ресурс) {" у першому рядку додайте:
resetTimeout()
Зробіть те ж саме для "page.onResourceRequested = функція onResourceRequested (requestData, request) {"
Нарешті, на "page.onLoadFinished = функція onLoadFinished (статус) {" у першому рядку додайте:
if(!reqResFinished)
{
return
}
reqResFinished = false
І це все, сподіваюся, що цей допомагає комусь у біді, як я. Це рішення призначене для casperjs, але працює безпосередньо для Spooky.
Удачі !