पिछले तीन सालों से, Chrome की ब्राउज़र ऑटोमेशन टीम, ब्राउज़र स्टैक जैसे अन्य अहम ब्राउज़र और टूल वेंडर के साथ मिलकर काम कर रही है, ताकि WebDriver BiDi बनाया जा सके. यह एक नया ब्राउज़र ऑटोमेशन प्रोटोकॉल है, जो सभी ब्राउज़र पर दो-तरफ़ा ऑटोमेशन वर्कफ़्लो को चालू करता है. पहले, ये वर्कफ़्लो सिर्फ़ Chromium पर आधारित ब्राउज़र में, मालिकाना हक वाले Chrome DevTools प्रोटोकॉल की मदद से ही किए जा सकते थे.
आज WebDriver BiDi, डेवलपर के लिए शेयर की जा रही इस कोशिश की एक अहम उपलब्धि है. ऐसा इसलिए है, क्योंकि ब्राउज़र स्टैक के साथ ही WebDriver BiDi अब सभी डेवलपर के लिए तैयार हो गया है.
Selenium और BrowserStack
हाल ही में, BrowserStack सेलेनियम का आधिकारिक डेवलपमेंट पार्टनर बना है. यह एक मैच्योर, ओपन-सोर्स ब्राउज़र ऑटोमेशन फ़्रेमवर्क है जिसने WebDriver BiDi में भी योगदान दिया है. यह पार्टनरशिप इस बात का सबूत है कि BrowserStack एक बेहतरीन टेस्टिंग नेटवर्क में लगातार निवेश कर रहा है. साथ ही, BrowserStack ने सेलेनियम के कई मुख्य मैनेजर की मदद ली है.
Selenium Grid, Selenium प्रोजेक्ट का हिस्सा है. इससे एक साथ कई डिवाइसों पर टेस्ट चलाए जा सकते हैं. हालांकि, ग्रिड को खुद से सेट अप करना, दर्जनों अलग-अलग डिवाइसों को हासिल करना और उनका रखरखाव करना, कुछ लोगों के लिए मुश्किल या असंभव हो सकता है.
BrowserStack जैसे होस्ट किए गए Selenium Grid सलूशन की मदद से, कई अलग-अलग प्लैटफ़ॉर्म और डिवाइसों पर आसानी से टेस्ट चलाए जा सकते हैं. इसके लिए, आपको उन्हें खुद मैनेज करने की ज़रूरत नहीं पड़ती.
Selenium Grid पर WebDriver BiDi
Selenium, WebDriver स्टैंडर्ड पर आधारित है (ध्यान दें कि इसमें BiDi मौजूद नहीं है). हालांकि, कुछ समय से इसमें WebDriver BiDi के लिए प्रयोग के तौर पर सहायता उपलब्ध है. आज से, BrowserStack के होस्ट किए गए Selenium Grid पर, प्रोडक्शन में WebDriver BiDi निर्देशों का इस्तेमाल किया जा सकता है!
इससे, अनुरोध को इंटरसेप्ट करने, ऐडवांस इम्यूलेशन, और ब्राउज़र इवेंट को रीयल-टाइम में मैनेज करने जैसी सुविधाएं चालू हो जाती हैं. यह सुविधा सिर्फ़ Chrome में ही नहीं, बल्कि WebDriver BiDi के साथ काम करने वाले हर ब्राउज़र में काम करती है.
यहां दिए गए उदाहरण में, BrowserStack पर WebDriver BiDi का इस्तेमाल करके, लॉग इवेंट सुनने का तरीका बताया गया है. इसके बाद, कैप्चर किए गए लॉग automate.browserstack.com' पर भी जांच के लिए उपलब्ध होंगे:
const webdriver = require('selenium-webdriver');
// Insert credentials from https://www.browserstack.com/accounts/profile/details
const USERNAME = '<YOUR_USERNAME>';
const ACCESS_KEY = '<YOUR_ACCESS_KEY>';
(async () => {
const driver = await (new webdriver.Builder()
.withCapabilities({
browserName: 'chrome',
'bstack:options': {
seleniumVersion: '4.22.0',
seleniumBidi: true, // Enable WebDriver BiDi.
},
})
.usingServer(
`https://${USERNAME}:${ACCESS_KEY}@hub-cloud.browserstack.com/wd/hub`
)
.build());
// Add a listener for log events.
await driver.script().addConsoleMessageHandler((logEntry) => {
console.log(logEntry.text);
});
await driver.get(
'https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html'
);
// Trigger a console log on the demo page.
await driver.findElement({ id: 'consoleLog' }).click();
await driver.quit();
// Inspect logs on automate.browserstack.com!
})();
BrowserStack तो सिर्फ़ शुरुआत है
Chrome ब्राउज़र ऑटोमेशन टीम, BrowserStack की टीम को WebDriver BiDi की सुविधा लॉन्च करने के लिए बधाई देती है! हम उम्मीद कर रहे हैं कि आने वाले हफ़्तों में यह WebDriver BiDi के ब्राउज़र स्टैक, सेलेनियम जैसे दूसरे टूल के साथ-साथ दूसरे मुख्य ब्राउज़र पर भी काम करने लगेगा.
अगर इस एलान ने आपको टेस्ट करने के लिए उत्साहित किया है, लेकिन आपने अभी तक अपनी टेस्टिंग शुरू नहीं की है, तो web.dev पर हमारा 'लर्निंग टेस्टिंग कोर्स' देखना न भूलें.