मुझे आश्चर्य है कि कोई भी इन प्रयासों में से किसी एक पर विस्तार कर सकता है या वेबड्राइवर का उपयोग करके जेएस त्रुटियों को पकड़ने के लिए कोई अन्य विचार है जो फ़ायरफ़ॉक्स, क्रोम, इंटरनेट एक्सप्लोरर और सफारी में काम करेगा।सेलेनियम वेबड्राइवर में जावास्क्रिप्ट त्रुटियों को पकड़ें - ब्राउज़र स्वतंत्र
यहाँ अब तक कोशिश की गई है:
प्रयास - समस्या:
JSErrorCollector.jar - ठीक काम करता है, लेकिन एक Firefox एकमात्र समाधान है।
इंजेक्षन जे एस पेज स्रोत में - मैं पृष्ठ के स्रोत WebDriver का उपयोग कर कोड में window.onerror
कोड इंजेक्शन, लेकिन किसी भी प्रारंभिक त्रुटियों को याद कर रहे हैं क्योंकि इंजेक्शन बहुत देर हो चुकी है।
BrowserMob - मैं HTTP प्रतिक्रिया रोकना और प्रतिक्रिया शरीर में window.onerror
कोड इंजेक्षन करने की योजना बनाई सकता है, लेकिन लेखक अभी तक getBody()
विधि लागू नहीं किया है, इसलिए केवल हेडर संशोधित किया जा सकता है कि मैं के बारे में पता कर रहा हूँ। शरीर सभी प्रतिक्रियाओं के लिए हमेशा शून्य है। (मैं फिर से एक वेबपेज जहाँ लेखक getBody()
को लागू करने के बारे में बात पर था, लेकिन यह अभी तक नहीं हुई है और मैं इसे नहीं मिल सकता है)
फ़िडलर - जे एस सही ढंग से इंजेक्षन जाएगा, लेकिन फ़िडलर विंडोज है केवल इतना सफारी नहीं होगा काम।
अभिभावक/बाल खिड़कियां - मैं परीक्षण पृष्ठ की विंडो को संदर्भ खोलने और संग्रहीत करने के लिए जावास्क्रिप्ट का उपयोग करता हूं। window.onerror code
पैरेंट विंडो में निहित है, इसलिए यह बाल विंडो में स्टार्टअप त्रुटियों को याद नहीं करेगा। मैं इसे कुछ भी काम करने के लिए नहीं मिल सकता लेकिन फ़ायरफ़ॉक्स और क्रोम कुछ हद तक। मैंने पहले ही here के बारे में एक प्रश्न पूछा है।
सेलेनियम आर सी - मैं इसे की कोशिश की है नहीं क्योंकि मेरे सभी परीक्षणों WebDriver उपयोग करें, लेकिन मैं जानता हूँ कि यह captureNetworkTraffic()
की तरह विधि किसी तरह का है, लेकिन मुझे नहीं लगता कि यह WebDriver में इस्तेमाल किया जा सकता है।
आईई त्रुटि पॉपअप - मैं फ़ायरफ़ॉक्स/क्रोम के लिए अभिभावक/बाल समाधान का उपयोग करने जा रहा था और फिर आईई त्रुटि पॉपअप की तलाश में था। जब यह सेटिंग प्रदर्शित करने के लिए सेटिंग की जांच की जाती है तो यह पॉपअप प्रदर्शित होता है। पॉपअप एक मूल विंडो विंडो है (मुझे लगता है) तो मैं इसे एक्सेस करने के लिए सेलेनियम का उपयोग नहीं कर सकता।
ब्राउज़र कंसोल पढ़ें - मुझे सभी ब्राउज़रों में ऐसा करने का कोई तरीका नहीं मिला। क्रोम में मुझे कंसोल लॉग को फ़ाइल में सहेजने का एक तरीका मिला और फिर फ़ाइल को पढ़ा। जहां तक मुझे मिला है।
मुझे ब्राउज़रमोब के समान समाधान चाहिए क्योंकि ऐसा लगता है कि यह एक क्रॉस ब्राउज़र समाधान होगा। क्या कोई अन्य प्रॉक्सी है जिसे परीक्षण में रखा जा सकता है और प्रतिक्रिया को रोक सकता है? यह उत्कृष्ट रहा होगा अगर getBody()
विधि लागू की गई थी। मुझे माता-पिता/बाल समाधान भी पसंद है क्योंकि यह एक सरल, क्रॉस ब्राउज़र समाधान की तरह लगता है, लेकिन यह आईई (parent/child question again) के लिए काम नहीं कर रहा है।
किसी भी मदद के लिए धन्यवाद।
जहाँ तक मुझे पता है, आपने वर्तमान में उपलब्ध सभी संभावित समाधान सूचीबद्ध किए हैं (जुलाई 2013, सेलेनियम 2.33.0)। [अधिक चर्चा के लिए आधिकारिक सेलेनियम बग देखें।] (Http://code.google.com/p/selenium/issues/detail?id=148) जब तक कोई आधिकारिक एपीआई नहीं है, तो आपको उन लोगों के मिश्रण का उपयोग करना होगा समाधान, या संभवतया आपको समर्थन करने के लिए आवश्यक प्रत्येक ब्राउज़र के लिए अपना स्वयं का ब्राउज़र एडन लिखें। –
लिंक के लिए धन्यवाद। – Ryan
आपको एहसास है कि ब्राउज़रमोब प्रॉक्सी [ओपन-सोर्स] है (https://github.com/lightbody/browsermob-proxy), है ना? गुम कार्यक्षमता को लागू करने और पुल अनुरोध सबमिट करने से आपको क्या रोक रहा है? – JimEvans