במהלך שלוש השנים האחרונות, צוות האוטומציה של דפדפנים ב-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.