पिछले तीन सालों से, Chrome की ब्राउज़र ऑटोमेशन टीम, BrowserStack जैसे अन्य ब्राउज़र और टूल वेंडर के साथ मिलकर काम कर रही है. इसका मकसद WebDriver BiDi बनाना है. यह एक नया ब्राउज़र ऑटोमेशन प्रोटोकॉल है, जो सभी ब्राउज़र में ऑटोमेशन वर्कफ़्लो को दोनों दिशाओं में चलाने की सुविधा देता है. पहले, ये वर्कफ़्लो सिर्फ़ Chromium पर आधारित ब्राउज़र में, मालिकाना हक वाले Chrome DevTools प्रोटोकॉल की मदद से ही किए जा सकते थे.
आज का दिन, इस प्रोजेक्ट के लिए एक अहम माइलस्टोन है. आज से, WebDriver BiDi को डेवलपर के लिए, प्रोडक्शन के लिए तैयार कर दिया गया है. इसकी शुरुआत BrowserStack से की जा रही है.
Selenium और BrowserStack
हाल ही में, BrowserStack, Selenium का आधिकारिक डेवलपमेंट पार्टनर बन गया. Selenium एक ओपन-सोर्स ब्राउज़र ऑटोमेशन फ़्रेमवर्क है. इसने WebDriver BiDi में भी योगदान दिया है. यह साझेदारी, BrowserStack के टेस्टिंग नेटवर्क को बेहतर बनाने के लिए लगातार किए जा रहे निवेश की गवाही है. BrowserStack ने Selenium के कई मुख्य डेवलपर को भी अपने साथ जोड़ा है.
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 की टीम को बधाई देती है. हमें उम्मीद है कि आने वाले हफ़्तों में, BrowserStack के साथ-साथ Selenium जैसे अन्य टूल और अन्य मुख्य ब्राउज़र पर भी, WebDriver BiDi की सुविधा उपलब्ध होगी.
अगर इस एलान से आपको टेस्टिंग में दिलचस्पी आई है, लेकिन आपने अब तक टेस्टिंग शुरू नहीं की है, तो web.dev पर टेस्टिंग सीखने का कोर्स देखें.