इस लेख में, साल 2023 में WebDriver BiDi में हुए नए बदलावों के बारे में खास जानकारी दी गई है.
WebDriver BiDi क्या है?
WebDriver एक ब्राउज़र ऑटोमेशन प्रोटोकॉल है, जिसे W3C स्टैंडर्ड के तौर पर परिभाषित किया गया है. इसे ChromeDriver, GeckoDriver, और WebKitDriver में लागू किया गया है.
Chromium के पास भी अपना ब्राउज़र ऑटोमेशन प्रोटोकॉल है: Chrome DevTools Protocol या CDP.
इन दोनों प्रोटोकॉल में कुछ बुनियादी अंतर हैं: WebDriver एक इंटरऑपरेबल स्टैंडर्ड है, लेकिन यह प्रोटोकॉल कम असरदार है और इसमें CDP की सुविधाएं नहीं हैं. इसके उलट, सीडीपी ज़्यादा असरदार और बेहतर है, लेकिन यह कम इंटरऑपरेबल है.
इसलिए, 2020 में W3C ब्राउज़र टेस्टिंग और टूल वर्किंग ग्रुप ने WebDriver BiDi पर काम शुरू किया. यह ब्राउज़र ऑटोमेशन का एक नया स्टैंडर्ड प्रोटोकॉल है, जो WebDriver Classic और CDP प्रोटोकॉल के बीच के अंतर को कम करता है. दोनों तरह के कॉन्टेंट में माहिर! ज़्यादा जानकारी के लिए, पिछले समय की झलक: टेस्ट ऑटोमेशन का विकास और 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 को कब अपनाएंगे.
- स्पेसिफ़िकेशन से जुड़ी चर्चाओं में हिस्सा लें.