14

पिछले हफ्ते मैरियनेट नामक इस नए फ़ायरफ़ॉक्स ड्रायवर के बारे में बहुत शोर आया है। सेलेनियम के साथ फ़ायरफ़ॉक्स का उपयोग करने के लिए, हम "पुराने" सेलेनियम फ़ायरफ़ॉक्स ड्रायवर का उपयोग करते थे। फ़ायरफ़ॉक्स 48.0 से बाद में मोज़िला द्वारा विकसित इस नए फ़ायरफ़ॉक्स ड्रायवर का उपयोग करने की आवश्यकता होगी।सेलेनियम परीक्षक के लिए पुराने सेलेनियम फ़ायरफ़ॉक्स ड्रायवर के बजाय मैरियनेट फ़ायरफ़ॉक्स ड्रायवर का उपयोग करने के क्या फायदे हैं?

मुझे समझ में आता है कि प्रत्येक ब्राउज़र को अपने ड्राइवरों का समर्थन करने और विकसित करने और सेलेनियम से स्वतंत्र ड्राइवरों को प्राप्त करने के लिए उस दिशा में बदलना आवश्यक है। इसके अलावा, यह माना जाता है कि मोज़िला अपने ड्राइवर को विकसित करता है, तो यह मुद्दों को ठीक करने और सुविधाओं को विकसित करने के लिए तेज़ और आसान होगा।

मेरा प्रश्न है, जो सेलेनियम ढांचे का उपयोग कर स्वचालित परीक्षण तैयार करते हैं, क्या "पुराने" सेलेनियम समर्थित फ़ायरफ़ॉक्स ड्राइवर के बजाय मैरियनेट का उपयोग करने का कोई लाभ है? _ (जैसे बेहतर प्रदर्शन, बेहतर संगतता ...)

+4

संभावित करीबी मतदाता जो इस प्रश्न को मानने के लिए लुभाने वाले हो सकते हैं "बहुत व्यापक" है। यह। एक नया और तकनीकी कारण है कि इस नए दृष्टिकोण की आवश्यकता क्यों है। मैंने इसे अपने जवाब में रेखांकित किया है। – JimEvans

उत्तर

23

मोज़िला-प्रदान किए गए, मैरियनेट-आधारित गेकोड्रिवर समाधान का उपयोग करने का मुख्य लाभ यह है कि यह फ़ायरफ़ॉक्स 48 और उसके संस्करण के संस्करणों के लिए काम करता है। सेलेनियम प्रोजेक्ट द्वारा प्रदान और रखरखाव विरासत चालक फ़ायरफ़ॉक्स 48 या उच्चतम के लिए काम नहीं करता है, और फ़ायरफ़ॉक्स के उन संस्करणों के लिए कभी भी काम नहीं करेगा।

विरासत चालक को फ़ायरफ़ॉक्स एक्सटेंशन के रूप में कार्यान्वित किया जाता है। यह एक्सटेंशन ड्राइवर द्वारा उपयोग की जाने वाली प्रोफ़ाइल में स्थापित होता है जब WebDriver फ़ायरफ़ॉक्स लॉन्च करता है। फ़ायरफ़ॉक्स 48 ने दो नई विशेषताएं पेश कीं जो इस ब्राउज़र एक्सटेंशन को अक्षम कर दीं। पहला तथाकथित "इलेक्ट्रोलिसिस" फीचर, या मल्टीप्रोसेस फ़ायरफ़ॉक्स है। इलेक्ट्रोलिसिस सेलेनियम टीम ने पूरी तरह से समझने के लिए समय नहीं लिया है, जिस तरह से एक्सटेंशन को ब्राउजर से निपटने का तरीका बदलता है।

दूसरी, अधिक महत्वपूर्ण आवश्यकता यह है कि ब्राउजर उन्हें लोड करने की अनुमति देने से पहले मोज़िला द्वारा सभी ब्राउज़र एक्सटेंशन पर हस्ताक्षर किए जाने चाहिए। यह बाद की सुविधा कई संस्करणों के लिए फ़ायरफ़ॉक्स में रही है, लेकिन 48 से शुरू होने पर, इसे अब अक्षम नहीं किया जा सकता है। वेबड्राइवर ब्राउज़र एक्सटेंशन फ़ायरफ़ॉक्स ब्राउज़र के लिए कई मान्य सुरक्षा चिंताओं को प्रस्तुत करता है, और इस तरह, मोज़िला की सुरक्षा टीम द्वारा हस्ताक्षरित नहीं किया जाएगा। यह बदले में, विस्तार को अयोग्य बनाता है, और इस प्रकार सेलेनियम अब फ़ायरफ़ॉक्स के साथ संवाद नहीं कर सकता है। मोज़िनेट-आधारित समाधान, जिसे पहले स्थान पर मोज़िला द्वारा विकसित और बनाए रखा जा रहा है, उन्हें फ़ायरफ़ॉक्स को स्वचालित करने में उपयोग के लिए आशीर्वाद दिया जाता है, और इस तरह प्रतिबद्धता है कि यह आगे बढ़ने वाले भविष्य के संस्करणों के साथ काम करना जारी रखेगा।

तो फ़ायरफ़ॉक्स 48 और उच्चतम के साथ मैरियनेट का उपयोग करने का प्राथमिक लाभ यह है कि यह काम करेगा, जबकि अन्य समाधान नहीं होंगे।

+0

यदि मैरियनेट-आधारित गेकोड्रिवर फ़ायरफ़ॉक्स के विस्तार के रूप में उपयोग नहीं किया जा रहा है, तो फ़ायरफ़ॉक्स ड्राइव करने के लिए यह तंत्र क्या होगा? कोई साधारण उदाहरण pls .. Marionette ड्राइवर में इलेक्ट्रोलिसिस पर कोई भी छोटा विचार ठीक होगा; जैसे ड्राइवर फ़ायरफ़ॉक्स ब्राउज़र पर ले जाता है। –

+2

ब्राउज़र को चलाने के लिए उपयोग की जाने वाली तंत्र अब फ़ायरफ़ॉक्स का हिस्सा है। यह ब्राउज़र में बनाया गया है, यही कारण है कि यह मोज़िला द्वारा बनाए रखा जाता है। उनका ड्राइवर कोड पूरी तरह से [ओपन सोर्स] (https://github.com/mozilla/geckodriver) है, और उनके द्वारा प्रदान किया गया 'geckodriver' निष्पादन योग्य वेबरिएवर से HTTP कॉल लेने के लिए एक अनुवादक के रूप में कार्य करता है ताकि मैरियनेट संचार प्रोटोकॉल का उपयोग किया जा सके टीसीपी कि ब्राउज़र मूल रूप से समझता है। यदि आप सेलेनियम का उपयोग कर रहे हैं, हालांकि, उपयोगकर्ता को विनिर्देशों की देखभाल करने की आवश्यकता नहीं है; यह उसी कोड का उपयोग करके काम करेगा जो पहले काम करता था। – JimEvans

+0

@JimEvans मैंने पाया कि सेलेनियम 3 डिफ़ॉल्ट रूप से मैरियनेट ड्राइवर का उपयोग कर रहा है। तो चीजें कोड के मौजूदा सेट के साथ कैसे काम कर सकती हैं। [मुझे एक समान समस्या का सामना करना पड़ रहा है] (http://stackoverflow.com/questions/40086011/how-to-set-a- विशिष्ट-download-location-in-mozilla-marionette-web-driver) –

संबंधित मुद्दे