Firefox, Chrome, और Puppeteer में WebDriver BiDi प्रोडक्शन के लिए तैयार है

Matthias Rohmer
Matthias Rohmer

पिछले हफ़्ते, हमने BrowserStack के साथ मिलकर WebDriver BiDi को बनाने का एलान किया था ब्राउज़र स्टैक में प्रोडक्शन के लिए तैयार है. WebDriver BiDi की गर्मियों में इस हफ़्ते Firefox 129 और Puppeteer 23, दोनों को WebDriver BiDi के लिए प्रोडक्शन के लिए तैयार सहायता मिल रही है!

Mozilla चार साल से भी ज़्यादा समय से WebDriver BiDi पर बेहतरीन सहयोगी रहा है वह पहले नए स्टैंडर्ड को आकार देने में मदद कर रही थी और फिर धीरे-धीरे लागू Firefox WebDriver न्यूज़लेटर के साथ अपनी प्रगति को अच्छी तरह से दस्तावेज़ित कर रहा है.

WebDriver BiDi के साथ अब Firefox में प्रोडक्शन के लिए तैयार है. Puppeteer को वर्शन 23 में लॉन्च किया गया है, यह WebDriver BiDi के ज़रिए Firefox के लिए स्थायी सहायता देता है. इसकी मदद से, Firefox का छोटा एपीआई, Chrome जैसा ही है. Chrome के लिए Puppeteer का समर्थन DevTools प्रोटोकॉल (सीडीपी) में कोई बदलाव नहीं होगा.

Firefox, CDP, और Puppeteer

Puppeteer डेवलपर के लिए एक भरोसेमंद टूल है. इसकी मदद से, वे Chrome का इस्तेमाल करके Chromium-आधारित ब्राउज़र को ऑटोमेट कर सकते हैं DevTools प्रोटोकॉल, जिसे सीडीपी भी कहा जाता है. साल 2019 में Puppeteer को एक्सपेरिमेंट के तौर पर मदद मिली इस्तेमाल करें.

यह काम करने के लिए, Mozilla ने सीडीपी के सबसेट को लागू किया और बनाए रखा फ़ायरफ़ॉक्स. इस समाधान की वजह से Firefox को Puppeteer API की मदद से ऑटोमेटिक किया जाता है, लेकिन कुछ चेतावनियां थीं:

  • जैसा कि नाम से ही पता चलता है, Chrome का DevTools सीडीपी का इस्तेमाल करता है. इसलिए, इसे बदलना होगा DevTools की ज़रूरी शर्तें पूरी करते हैं.
  • सीडीपी सार्वजनिक जानकारी के हिसाब से स्टैंडर्ड नहीं है. साथ ही, Firefox में इसे बनाए रखने के लिए कम्यूनिकेशन की ज़रूरत होती है और प्रयास.
  • क्योंकि Firefox ने केवल सीडीपी का एक सबसेट ही लागू किया है, इसलिए Puppeteer इसे कभी भी Firefox के साथ काम करने के लिए इसके पूर्ण API की गारंटी देता है, जिससे उपयोगकर्ताओं के लिए भ्रम पैदा होता है.

हालांकि, हमें खुशी है कि हमने Mozilla के साथ मिलकर हम हमेशा जानते थे कि यह समाधान स्थायी नहीं है. इस पर बनाया जा रहा है और इनमें दूसरे बड़े ब्राउज़र और टूल वेंडर भी शामिल हैं, साथ मिलकर हमने WebDriver BiDi बनाया.

टीम के साथ मिलकर काम करें, हर मुश्किल आसान करें

Firefox की टीम, Firefox में WebDriver BiDi को लागू करने के लिए उत्सुकता से काम कर रही है. इसके साथ ही, Puppeteer की टीम भी WebDriver BiDi के साथ काम करने के तरीकों को बढ़ा रही है पूरे Puppeteer API के ज़रिए किए जा सकते हैं. दोनों टीमों ने मिलकर जिस मकसद पर काम किया था वह यह था कि प्रोडक्शन ऑटोमेशन के इस्तेमाल के उदाहरणों के लिए, सभी ज़रूरी एपीआई का इस्तेमाल करना यह Puppeteer में WebDriver BiDi का इस्तेमाल करके उपलब्ध होता है. साथ ही, Chrome और Chrome, दोनों में फ़ायरफ़ॉक्स.

टीम का शेयर किया गया डैशबोर्ड, जिसमें पिछले कुछ महीनों में पास होने वाले टेस्ट की संख्या की जानकारी दी गई है.
टीम का शेयर किया गया डैशबोर्ड, जिसमें पिछले कुछ महीनों में पास होने वाले टेस्ट की संख्या की जानकारी दी गई है.

इससे Puppeteer के उपयोगकर्ता अपने ऑटोमेशन के लिए, Firefox या Chrome में से किसी एक को चुन सकते हैं, Puppeteer लॉन्च करते समय browser कॉन्फ़िगरेशन कुंजी तय करके इंस्टेंस.

import puppeteer from 'puppeteer';

const firefoxBrowser = await puppeteer.launch({
  browser: 'firefox', // WebDriver BiDi is used by default in Firefox.
});
const page = await firefoxBrowser.newPage();
...
await firefoxBrowser.close();

const chromeBrowser = await puppeteer.launch({
  browser: 'chrome',  
  protocol: 'webDriverBiDi', // CDP would be used by default for Chrome.
});
const page = await chromeBrowser.newPage();
...
await chromeBrowser.close();

Firefox 129 में नया क्या है और WebDriver पर Mozilla के काम के बारे में ज़्यादा जानने के लिए BIDi इससे संबंधित Mozilla Hacks ब्लॉग पोस्ट देखें.

आने वाले समय में सीडीपी सपोर्ट

ऊपर दिया गया कोड स्निपेट दिखाता है कि Chrome Puppeteer के साथ WebDriver BiDi का इस्तेमाल करने के लिए, आपको protocol को साफ़ तौर पर इस पर सेट करना होगा webDriverBiDi. ऐसा इसलिए है, क्योंकि Chrome के लिए Puppeteer डिफ़ॉल्ट रूप से सीडीपी—मौजूदा ऑटोमेशन में कोई गड़बड़ी नहीं होगी. साथ ही, इससे ऑटोमेशन की सुविधा को बनाए रखने में भी मदद मिलेगी सुविधाओं के लिए विशेष रूप से तैयार हैं.

Firefox 129 में सीडीपी सपोर्ट को बंद कर दिया गया है. इसे 2024 के आखिर में हटा दिया जाएगा. अगर आपके पास पहले से मौजूद ऐसे ऑटोमेशन हैं जो Firefox में सीडीपी सपोर्ट पर निर्भर हैं, तो WebDriver BiDi पर माइग्रेट करने का सुझाव दें. अगर ऐसा नहीं हो सकता, तो यहां संपर्क करें dev-webdriver@mozilla.org पर भी लागू करें.