במהלך שלוש השנים האחרונות, צוות האוטומציה של דפדפנים ב-Chrome שיתף פעולה עם ספקים גדולים אחרים של דפדפנים וכלים, כמו BrowserStack, כדי ליצור את WebDriver BiDi – פרוטוקול חדש לאוטומציה של דפדפנים שמאפשר תהליכי עבודה אוטומטיים דו-כיווניים בדפדפנים שונים. בעבר, תהליכי העבודה האלה היו אפשריים רק באמצעות פרוטוקול Chrome DevTools הקנייני בדפדפנים מבוססי Chromium.
היום אנחנו מציינים ציון דרך חשוב במאמץ המשותף הזה, כי WebDriver BiDi מוכן סוף סוף לשימוש בסביבת הייצור למפתחים, החל מ-BrowserStack היום.
Selenium ו-BrowserStack
לאחרונה BrowserStack הפכה לשותף פיתוח רשמי של Selenium, מסגרת אוטומציה מבוססת-דפדפן בקוד פתוח שתרמה גם ל-WebDriver BiDi. השותפות הזו היא עדות להשקעה המתמשכת של BrowserStack בסביבת בדיקות משגשגת. בנוסף, ב-BrowserStack מועסקים כמה מהמפתחים המרכזיים של Selenium.
חלק מפרויקט Selenium הוא Selenium Grid, שמאפשר להריץ בדיקות במספר מכשירים במקביל. עם זאת, הגדרה עצמאית של רשת, רכישה ותחזוקה של עשרות מכשירים שונים ושמירה על הזמינות שלהם יכולים להיות מאתגרים או אפילו בלתי אפשריים עבור חלק מהאנשים.
פתרונות מנוהלים של Selenium Grid, כמו BrowserStack, יכולים לעזור לכם להריץ את הבדיקות בפלטפורמות ובמכשירים רבים ושונים, בלי לנהל אותם בעצמכם.
WebDriver BiDi ב-Selenium Grid
Selenium מבוסס על תקן WebDriver (שימו לב ל-BiDi החסר), אבל כבר זמן מה יש לו תמיכה ניסיונית ב-WebDriver BiDi. החל מהיום, אפשר להשתמש בפקודות WebDriver BiDi בסביבת הייצור ב-Selenium Grid שמתארח ב-BrowserStack.
כך אפשר להשתמש בתכונות כמו תיעול בקשות, הדמיה מתקדמת וטיפול באירועי דפדפן בזמן אמת – ולא רק ב-Chrome, אלא בכל דפדפן שתומך ב-WebDriver BiDi.
בדוגמה הבאה מוסבר איך להאזין לאירועי יומן באמצעות WebDriver BiDi ב-BrowserStack. לאחר מכן, יומני האירועים שנתפסו יהיו זמינים לבדיקה גם בכתובת 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 ב-BrowserStack, בכלים אחרים כמו Selenium ובדפדפנים גדולים אחרים בשבועות הקרובים.
אם ההודעה הזו עוררה בכם עניין בבדיקות, אבל עדיין לא התחלתם את הדרך, כדאי לעיין בקורס 'לימוד בדיקות' ב-web.dev.