WebDriver BiDi: 2023 का स्टेटस अपडेट

इस लेख में, साल 2023 में WebDriver BiDi में होने वाले नए बदलावों के बारे में खास जानकारी दी गई है.

WebDriver BiDi क्या है?

WebDriver एक ब्राउज़र ऑटोमेशन प्रोटोकॉल है, जिसे W3C स्टैंडर्ड के तौर पर परिभाषित किया गया है. इसे ChromeDriver, GeckoDriver, और WebKitDriver में लागू किया जाता है.

Chromium के पास भी अपना ब्राउज़र ऑटोमेशन प्रोटोकॉल है: Chrome DevTools Protocol या CDP.

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

यही वजह है कि W3C Browser Testing and Tools Working Group ने WebDriver BiDi पर काम करना शुरू किया. यह एक नया स्टैंडर्ड ब्राउज़र ऑटोमेशन प्रोटोकॉल है. यह WebDriver क्लासिक और सीडीपी प्रोटोकॉल के बीच के अंतर को कम करता है. दोनों तरह के कॉन्टेंट में माहिर! ज़्यादा जानकारी के लिए, पिछले समय की झलक: टेस्ट ऑटोमेशन का विकास और WebDriver BiDi — क्रॉस-ब्राउज़र ऑटोमेशन का भविष्य पढ़ें.

WebDriver BiDi में, स्टैंडर्ड बनाने, वेब प्लैटफ़ॉर्म टेस्ट बनाने, और अलग-अलग ब्राउज़र इंजन के लिए लागू करने से जुड़ा काम शामिल है.

हम अब कहां हैं?

साल 2022 में, Chrome/ChromeDriver 106 और Firefox 102, दोनों ने WebDriver BiDi स्टैंडर्ड के साथ काम करने की सुविधा दी.

इसके बाद, WebDriver BiDi को लोकप्रिय फ़्रेमवर्क में अपनाया गया. इसमें लॉगिंग की सुविधा जैसी उन सुविधाओं को जोड़ा गया जिनका डेवलपर काफ़ी समय से अनुरोध कर रहे थे.

लॉग इन करने के लिए WebDriver BiDi का इस्तेमाल करें

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

यहां Selenium की JavaScript भाषा बाइंडिंग का इस्तेमाल करके, दूसरे इस्तेमाल के उदाहरण को लागू करने का उदाहरण दिया गया है:

import * as assert from 'node:assert';
import { Builder, LogInspector } from 'selenium-webdriver';
import chrome from 'selenium-webdriver/chrome.js';

const driver = new Builder()
  .forBrowser('chrome')
  .setChromeOptions(new chrome.Options().enableBidi())
  .build();

const inspector = await LogInspector(driver);
await inspector.onConsoleEntry((entry) => {
  console.log(`Console message received: [${
    entry.type}][${entry.level}] ${entry.text}`);
});

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html');
await driver.findElement({ id: 'consoleLog' }).click();

await driver.quit();

यहां Puppeteer के एक्सपेरिमेंटल WebDriver BiDi सपोर्ट का इस्तेमाल करने का उदाहरण दिया गया है:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch({
  protocol: 'webDriverBiDi',
  headless: 'new',
});

const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();

page.on('console', (message) => {
  console.log(`Console message received: [${
    message.type()
  }] ${message.text()}`);
});

await page.goto(`https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html`);
await page.evaluate(() => {
  document.querySelector('#consoleLog').click();
});

await browser.close();

यह सुविधा, WebdriverIO जैसे अन्य ऐब्स्ट्रैक्ट के ज़रिए उपलब्ध है.

शेयर किया गया सार्वजनिक रोडमैप

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

इंटरोऑपरेबिलिटी

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

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

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

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