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

इस लेख में बताया गया है कि साल 2023 में WebDriver BiDi में क्या नया है.

WebDriver BiDi क्या है?

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

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

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

इसलिए, साल 2020 में, W3C ब्राउज़र टेस्टिंग और टूल वर्किंग ग्रुप ने 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 इस्तेमाल करने के प्लान के लिए, किसी सुविधा का अनुरोध करें या अपने पसंदीदा टूल की मदद लें.
  • खास जानकारी से जुड़ी चर्चा में हिस्सा लें.