फायरफॉक्स प्रोफाइल सर्विस
क्या आप अपने Firefox ब्राउज़र को एक विशिष्ट एक्सटेंशन के साथ चलाना चाहते हैं या कुछ प्राथमिकताओं को सेट करने की आवश्यकता है? Selenium आपको Firefox ब्राउज़र के लिए एक प्रोफ़ाइल का उपयोग करने की अनुमति देता है, इस प्रोफ़ाइल को आपकी वांछित क्षमताओं में moz:firefoxOptions.profile
प्रॉपर्टी में base64
स्ट्रिंग के रूप में पास करके। इसके लिए उस प्रोफाइल को बनाने और base64
में परिवर्तित करने की आवश्यकता होती है। wdio testrunner के लिए यह सेवा प्रोफाइल को संकलित करने का कार्य आपके हाथों से निकालती है और आपको अपने वांछित विकल्पों को आरामदायक ढंग से wdio.conf.js
फ़ाइल से परिभाषित करने की अनुमति देती है।
सभी संभावित विकल्प खोजने के लिए अपने Firefox ब्राउज़र में about:config खोलें या प्रत्येक सेटिंग के बारे में पूरा दस्तावेज़ीकरण खोजने के लिए mozillaZine वेबसाइट पर जाएँ। इसके अतिरिक्त, आप संकलित (*.xpi
के रूप में) Firefox एक्सटेंशन परिभाषित कर सकते हैं जिन्हें परीक्षण शुरू होने से पहले इंस्टॉल किया जाना चाहिए।
इंस्टालेशन
सबसे आसान तरीका है @wdio/firefox-profile-service
को आपके package.json
में devDependency के रूप में रखना, इसके माध्यम से:
npm install @wdio/firefox-profile-service --save-dev
WebdriverIO
को कैसे इंस्टॉल करना है इसके निर्देश यहां मिल सकते हैं।
कॉन्फिगरेशन
अपनी सेवा सूची में firefox-profile
सेवा को जोड़कर अपना प्रोफाइल सेट करें। फिर अपनी सेटिंग्स को इस तरह firefoxProfile
प्रॉपर्टी में परिभाषित करें:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // path to .xpi file
'/path/to/extensionB' // or path to unpacked Firefox extension
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // only use for firefox <= 55
}]
],
// ...
};
यदि आपने एक कस्टम Firefox एक्सटेंशन बनाया है जिसे आप ब्राउज़र में इंस्टॉल करना चाहते हैं, तो सुनिश्चित करें कि प्रोफ़ाइल फ्लैग के रूप में 'xpinstall.signatures.required': false
सेट करें, क्योंकि Firefox एक्सटेंशन को Mozilla द्वारा हस्ताक्षरित होने की आवश्यकता है।
कस्टम अहस्ताक्षरित एक्सटेंशन का उपयोग करने के लिए आपको Firefox डेवलपर एडिशन का उपयोग करने की भी आवश्यकता होगी क्योंकि नियमित Firefox 48 और नए संस्करण इसकी अनुमति नहीं देते हैं।
विकल्प
सभी सेटिंग्स को key-value जोड़े के रूप में रखता है। आप सभी उपलब्ध सेटिंग्स about:config
पेज पर पा सकते हैं।
extensions
ब्राउज़र सेशन में एक या कई एक्सटेंशन जोड़ें। सभी प्रविष्टियां या तो .xpi
फ़ाइल के लिए एक पूर्ण पथ या अनपैक किए गए Firefox एक्सटेंशन डायरेक्टरी का पथ हो सकती हैं।
प्रकार: String[]
डिफ़ॉल्ट: []
profileDirectory
एक मौजूदा प्रोफाइल के आधार पर Firefox प्रोफाइल बनाएं, उस प्रोफाइल के लिए पूर्ण पथ सेट करके।
प्रकार: String
डिफ़ॉल्ट: null
proxy
नेटवर्क प्रॉक्सी सेटिंग्स सेट करें। पैरामीटर proxy
एक हैश है जिसकी संरचना अनिवार्य proxyType
की के मान पर निर्भर करती है, जो निम्न स्ट्रिंग मानों में से एक लेती है:
direct
- प्रत्यक्ष कनेक्शन (कोई प्रॉक्सी नहीं)system
- ऑपरेटिंग सिस्टम प्रॉक्सी सेटिंग्स का उपयोग करेंpac
-autoconfigUrl
की के मान के आधार पर सेट एक स्वचालित प्रॉक्सी कॉन्फिगरेशन का उपयोग करेंmanual
- निम्न की से मानों का उपयोग करके विभिन्न प्रोटोकॉल के लिए अलग से परिभाषित मैनुअल प्रॉक्सी सेटिंग्स:ftpProxy
,httpProxy
,sslProxy
,socksProxy
प्रकार: Object
डिफ़ॉल्ट: null
उदाहरण:
-
स्वचालित प्रॉक्सी:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'pac',
autoconfigUrl: 'http://myserver/proxy.pac'
}
}]
],
// ...
}; -
मैनुअल HTTP प्रॉक्सी:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080'
}
}]
],
// ...
}; -
मैनुअल HTTP और HTTPS प्रॉक्सी:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080',
sslProxy: '127.0.0.1:8080'
}
}]
],
// ...
};
legacy
कृपया इस फ्लैग को true
पर सेट करें यदि आप Firefox v55 या निचले संस्करण का उपयोग करते हैं।
प्रकार: Boolean
डिफ़ॉल्ट: false
WebdriverIO पर अधिक जानकारी के लिए होमपेज देखें।