WebDriver BiDi - क्रॉस-ब्राउज़र ऑटोमेशन का भविष्य

अपने पिछले लेख में, हमने WebDriver "क्लासिक" और Chrome DevTools प्रोटोकॉल (सीडीपी) नाम के मौजूदा ऑटोमेशन प्रोटोकॉल (सीडीपी) की जांच की और उनसे जुड़े फ़ायदे और सीमाएं भी बताई हैं.

WebDriver BiDi, ब्राउज़र ऑटोमेशन का भविष्य है! यह एक नया स्टैंडर्ड ब्राउज़र ऑटोमेशन प्रोटोकॉल है जिस पर अभी काम चल रहा है. इसका मकसद, WebDriver के “क्लासिक” और सीडीपी, दोनों वर्शन को एक साथ जोड़ना है. WebDriver BiDi पर दो-तरफ़ा कम्यूनिकेशन की सुविधा है. इससे यह डिफ़ॉल्ट रूप से तेज़ी से काम करता है और इसमें लो-लेवल कंट्रोल भी शामिल है.

WebDriver BiDi
WebDriver “क्लासिक” Chrome DevTools प्रोटोकॉल (सीडीपी)
सर्वश्रेष्ठ क्रॉस-ब्राउज़र सहायता तेज़ और दो-तरफ़ा मैसेज
W3C मानक लो-लेवल कंट्रोल देता है
परीक्षण के लिए बनाया गया

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

WebDriver BiDi के पीछे का विज़न.
WebDriver BiDi के पीछे का विज़न

मानक तय करना

WebDriver BiDi Working Group में अलग-अलग तरह के ब्राउज़र वेंडर, ओपन-सोर्स ब्राउज़र ऑटोमेशन प्रोजेक्ट, और ब्राउज़र ऑटोमेशन समाधान ऑफ़र करने वाली कंपनियां शामिल हैं. इस तरह के सहयोग से, आने वाले समय में ब्राउज़र ऑटोमेशन की सुविधा और बेहतर हो जाएगी.

WebDriver BiDi वर्किंग ग्रुप
WebDriver BiDi वर्किंग ग्रुप

ज़्यादातर काम GitHub रिपॉज़िटरी में किया जाता है. सभी प्रमुख ब्राउज़र वेंडर के साथ हर महीने मीटिंग होती हैं, जिनमें असल प्रोग्रेस की रिपोर्ट की जाती है. साथ ही, तर्क देने लायक और अज्ञात पहलुओं पर चर्चा होती है. क्रॉस-कंपनी का कामकाजी ग्रुप यह पक्का करता है कि फ़ैसले सभी हिस्सेदारों के हिसाब से हों.

नया प्रोटोकॉल बनाना और उसे लागू करना कोई आसान काम नहीं है. इसके लिए, अलग-अलग वेंडर को साथ मिलकर काम करना और उनके साथ मिलकर काम करना ज़रूरी है. इस प्रोसेस में ये चीज़ें शामिल हैं:

  • Specification: प्रस्ताव पर सुझाव इकट्ठा करने के लिए, टिप्पणियों (आरएफ़सी) की प्रोसेस का अनुरोध.
  • पुष्टि करना: यह अलग-अलग प्लैटफ़ॉर्म पर चलाए जा सकने वाले जांचों की एक सीरीज़ है. यह सभी तरीकों से पुष्टि करने का सबसे सही तरीका है.
  • लागू करना: ब्राउज़र, निर्देशों के हिसाब से प्रोटोकॉल लागू करते हैं और पुष्टि की जांच में पास होते हैं.

चैलेंज

इस सेक्शन में, हम WebDriver BiDi को लागू करने में आने वाली चुनौतियों के बारे में जानेंगे. ऐसा इसलिए, क्योंकि यह ऐप्लिकेशन के साथ काम करने, उपयोगिता, और लागू करने की क्षमता के बीच संतुलन बनाने की कोशिश करता है.

सीडीपी क्लोन के अलावा: क्रॉस-ब्राउज़र के साथ काम करने की सुविधा को अपनाना

Chrome और DevTools के लिए बने सीडीपी एलिमेंट को WebDriver BiDi स्पेसिफ़िकेशन में सीधे तौर पर कॉपी नहीं किया जा सकता. दूसरे ब्राउज़र के लिए सीडीपी को उसी तरह लागू करना संभव नहीं होगा. इससे एक ऐसा स्पेसिफ़िकेशन मिलता है जो सिर्फ़ इस काम को करने के तरीके के बारे में बताता है.

इंतज़ार का समय कम करना

WebDriver BiDi को इस तरह डिज़ाइन किया जाना चाहिए कि वह ज़्यादा इंतज़ार के समय को हैंडल कर सके और इस दौरान परफ़ॉर्मेंस पर कोई असर न पड़े. सीडीपी में इंतज़ार का समय कम होता है, क्योंकि क्लाइंट और सर्वर करीब-करीब एक ही फ़िज़िकल मशीन में चलते हैं. हालांकि, WebDriver BiDi में ऐसा नहीं होता है. इसलिए, WebDriver BiDi को क्लाइंट और सर्वर के बीच राउंडट्रिप की ज़रूरी संख्या को कम से कम करना होगा.

BiDi में अर्गोनॉमिक्स को प्राथमिकता देना

हालांकि, डेवलपर से यह उम्मीद नहीं की जाती है कि वे WebDriver BiDi क्लाइंट शुरू से बनाएं, फिर भी प्रोटोकॉल को ज़्यादा मुश्किल बनाने से बचना ज़रूरी है. एक जटिल BiDi को लागू करना न सिर्फ़ चुनौती भरा होता, बल्कि उसके साथ काम करना भी मुश्किल होता. इस वजह से उसे अपनाने और इस्तेमाल करने में परेशानी होती थी.

यह पक्का करना कि BiDi को लागू किया जा सकता है या नहीं

WebDriver BiDi ऐप्लिकेशन, अलग-अलग ब्राउज़र की सीमाओं को ध्यान में रखते हुए, असल में लागू करने लायक होना चाहिए. उदाहरण के लिए, BiDi की मदद से क्लाइंट के संपर्क में आए सभी JavaScript ऑब्जेक्ट को बनाए रखने से मेमोरी लीक हो सकती है. हालांकि, ऐसा न करने से, पेज के JavaScript के साथ डीबग करने और इंटरैक्ट करने में रुकावट नहीं आएगी. परफ़ॉर्मेंस से समझौता किए बिना, बेहतर तरीके से ब्राउज़र ऑटोमेशन चालू करना ज़रूरी है.

चुनौतियों का सामना करना

इस सेक्शन में, हम WebDriver BiDi को लागू करने में आने वाली चुनौतियों से निपटने के लिए इस्तेमाल की जाने वाली रणनीतियों पर चर्चा करेंगे.

रैपिड प्रोटोटाइपिंग

BiDis की सफलता के लिए ज़रूरी है कि उसे लागू करने में आने वाली चुनौतियों का सामना किया जाए. स्पेसिफ़िकेशन और जांच में तेज़ी लाने के लिए, हमने NodeJS का इस्तेमाल करके तेज़ी से प्रोटोटाइप करने का तरीका अपनाया. इससे न सिर्फ़ हमें अलग-अलग सलूशन के साथ प्रयोग करने में मदद मिलती है, बल्कि वेब प्लैटफ़ॉर्म टेस्ट को डेवलप करने में भी मदद मिलती है.

परफ़ॉर्मेंस को ध्यान में रखकर डिज़ाइन करें

डिज़ाइन का यह फ़ैसला परफ़ॉर्मेंस पर निर्भर करता है, क्योंकि कुछ मामलों में WebDriver BiDi में लेटेंसी ज़्यादा होती है. उदाहरण के लिए, ब्राउज़र से ऑब्जेक्ट आईडी और वैल्यू पाने के दौरान, WebDriver BiDi को सिर्फ़ एक राउंडट्रिप की ज़रूरत होती है, जबकि सीडीपी को दो राउंडट्रिप की ज़रूरत होती है. इसकी वजह यह है कि WebDriver BiDis ऐप्लिकेशन, आईडी और वैल्यू, दोनों को एक ही रिस्पॉन्स में दिखा सकता है. ऐसा इसलिए, क्योंकि सीडीपी को अलग-अलग रिस्पॉन्स के तौर पर, सीडीपी को अलग से दिखाना होता है. ऐसा इसलिए होता है, क्योंकि इससे एक ही जवाब में वैल्यू और आईडी, दोनों मिल जाते हैं.

वेब प्लैटफ़ॉर्म टेस्ट (डब्ल्यूपीटी) पर ज़ोर देना

BiDi के काम में वेब प्लैटफ़ॉर्म टेस्ट की अहम भूमिका होती है. फ़िलहाल, WebDriver “क्लासिक” और WebDriver BiDi चैनल को कवर किया जा रहा है. WPT, लागू करने की सभी प्रक्रियाओं के लिए एक भरोसेमंद पहचान फ़ाइल के तौर पर काम करता है. इन टेस्ट को अलग-अलग तरीकों से चलाने और पास करने के लिए डिज़ाइन किया गया है. इससे यह पक्का होता है कि एक ही तरह से क्रॉस-ब्राउज़र प्रोटोकॉल एक्ज़ीक्यूशन किया जाए, जो WebDriver BiDi की सफलता के लिए ज़रूरी है. डैशबोर्ड में नया WPT नतीजा देखें.

प्लान क्या है और मौजूदा प्रोग्रेस क्या है?

प्रोजेक्ट के दिशा-निर्देश को समझने के लिए, WebDriver BiDi रोडमैप पर एक नज़र डालें. रोडमैप पर काम चल रहा है और इसे लगातार बेहतर बनाया जा रहा है.

सभी ब्राउज़र पर लागू करने की स्थिति के लिए, वेब प्लैटफ़ॉर्म की नई जांच देखें. ऐसा करना इसलिए ज़रूरी है, क्योंकि यह सही सोर्स के तौर पर काम करता है.

प्रोजेक्ट की प्रोग्रेस पर नज़र रखने के लिए उसकी प्रोग्रेस पर नज़र बनाए रखें.

साल 2023 में की गई उपलब्धियों के बारे में जानें और नई चीज़ों के बारे में अप-टू-डेट रहें!

WebDriver BiDi के साथ काम करना: आप कैसे मदद कर सकते हैं

क्या आप WebDriver BiDi के साथ ब्राउज़र ऑटोमेशन के भविष्य को लेकर उत्साहित हैं? यहां बताया गया है कि आप किस तरह अपना सपोर्ट दिखा सकते हैं:

  • WebDriver BiDi के भविष्य को आकार देने में सहायता करने वाले शुरुआती टेस्टर और अपनाने वाले बनें.
  • लोगों को इसके बारे में बताएं! प्रोजेक्ट को #WebDriverBiDi हैशटैग का इस्तेमाल करके, सोशल मीडिया पर शेयर करें.
  • सहायता मांगें. WebDriverBiDi इस्तेमाल करने के प्लान के लिए, किसी सुविधा का अनुरोध करें या अपने पसंदीदा टूल का इस्तेमाल करें.
  • एपीआई के बारे में सुझाव या राय देकर आरएफ़सी में हिस्सा लें.

अक्सर पूछे जाने वाले सवाल

क्या WebDriver BiDi, Chrome DevTools प्रोटोकॉल (सीडीपी) की जगह लेने जा रहे हैं?

नहीं. Chromium पर आधारित ब्राउज़र, डीबग करने के लिए सीडीपी का इस्तेमाल करते रहेंगे. वहीं WebDriver BiDi, ज़्यादा एर्गोनॉमिक एपीआई की मदद से टेस्टिंग की ज़रूरतों को पूरा करने के लिए नया स्पेसिफ़िकेशन है.

Puppeteer, सीडीपी का इस्तेमाल कर रहा है, क्या इसका मतलब यह है कि Puppeteer को बंद कर दिया जाएगा?

नहीं. हालांकि, WebDriver BiDi, Puppeteer को क्रॉस-ब्राउज़र ऑटोमेशन टूल बनने में मदद करेंगे.

क्या आपके पास सार्वजनिक रोडमैप है?

हां, GitHub पर हमारे रोडमैप पर जाएं.