2013-12-09 6 views
5

कैस्परजेएस का उपयोग करके मैं कैस्पररर को कैसे पकड़ूं और कैसे संभालें?कैश और हैंडल कैस्पररर

डिफ़ॉल्ट प्रोग्राम के निष्पादन को जारी रखने के लिए प्रतीत होता है (जो त्रुटि को प्रसारित करने के अलावा कुछ भी नहीं करता है)।

ये त्रुटियां कंसोल/stdout पर लॉग इन हैं, लेकिन मुझे इन त्रुटियों को पकड़ने और संभालने के लिए एक तरीका (दस्तावेज़ों से) दिखाई नहीं देता है।

उदाहरण:

this.fillSelectors(selector, data); 

मई उत्पादन:

CasperError: Errors encountered while filling form: form not found

मैं जानता हूँ कि मैं कॉल करने से पहले सुनिश्चित करें कि सब कुछ मौजूद है बनाने के लिए जाँच कर सकते हैं, लेकिन वहाँ इस तथ्य के बाद पकड़ने के लिए एक तरीका है? (इस casper.click की तरह अनेक अन्य संचालन पर लागू होता है के रूप में अच्छी तरह से)

उत्तर

6

मैं इस तरह वर्तमान में कुछ का उपयोग करें:

casper.on('error', function(msg,backtrace) { 
    this.capture('./out/error.png'); 
    throw new ErrorFunc("fatal","error","filename",backtrace,msg); 
}); 

और उसके बाद मैं कोई चेतावनी या एक गंभीर त्रुटि की सरणी पर कार्रवाई करने के लिए एक कस्टम समारोह ErrorFunc है।

यदि आपके पास असफल क्लिक है तो इसे casper.on('error') फेंक देना चाहिए। तो आप त्रुटि को संभालने के तरीके के लिए कस्टम कोड डाल सकते हैं।

यहां documentation for Casper events है।

+0

एचएम की जरूरत है,। मैं कुछ भी नहीं पकड़ सकता। – MrD

0

यह जो के लिए पूर्ण समाधान है यह मेरे लिए काम नहीं कर रहा यह ^^

casper.on('error', function(msg, backtrace) { 
    this.capture('/tmp/error.png'); 
    console.log('backtrace: ' + JSON.stringify(backtrace, null, 4)); 
    console.log('message: ' + JSON.stringify(msg, null, 4)); 
    console.log('check capture in /tmp/error.png'); 
    casper.exit(1); 
}) 
संबंधित मुद्दे