यह एक पुराना प्रश्न है, लेकिन जब से मैं पूर्ण पृष्ठ लोड की तलाश कर रहा था, लेकिन स्पूकीज के लिए (जो कास्परज और फैंटमज का उपयोग करता है) और मुझे अपना समाधान नहीं मिला, मैंने इसके लिए अपनी स्क्रिप्ट बनाई, उसी के साथ उपयोगकर्ता डीमस्टोन के रूप में। यह दृष्टिकोण क्या करता है, एक निश्चित समय के लिए, यदि पृष्ठ प्राप्त नहीं हुआ या किसी भी अनुरोध को शुरू नहीं किया गया तो यह निष्पादन को समाप्त कर देगा।
Casper.js फ़ाइल पर (यदि आपने इसे विश्व स्तर पर स्थापित किया है, तो पथ कुछ इस तरह होगा /usr/local/lib/node_modules/casperjs/modules/casper.js) निम्न पंक्तियाँ जोड़ें:
सभी वैश्विक संस्करणों के साथ फ़ाइल के शीर्ष पर:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
फिर फंक्शन के अंदर "createPage (केस्पर)" के बाद "var पेज = आवश्यकता ('वेबपेज'); create ();" निम्नलिखित कोड जोड़ें:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
फिर पहली पंक्ति में "page.onResourceReceived = function onResourceReceived (संसाधन) {" के अंदर:
resetTimeout()
"Page.onResourceRequested = function onResourceRequested (requestData, request) {" के लिए समान कार्य करें
अंत में, पहली पंक्ति में "page.onLoadFinished = function onLoadFinished (स्थिति) {" पर:
if(!reqResFinished)
{
return
}
reqResFinished = false
और यह बात है, आशा है कि यह किसी को मुसीबत में मदद करता है जैसे मैं था। यह समाधान कैस्परज के लिए है, लेकिन स्पूकी के लिए सीधे काम करता है।
सौभाग्य !