W ciągu ostatnich 3 lat zespół automatyzacji przeglądarki Chrome współpracował z innymi dużymi dostawcami przeglądarek i narzędzi, takimi jak BrowserStack, aby stworzyć WebDriver BiDi – nowy protokół automatyzacji przeglądarki, który umożliwia dwukierunkowe przetwarzanie automatyzacji w różnych przeglądarkach. Wcześniej te procesy były możliwe tylko za pomocą zastrzeżonego protokołu Chrome DevTools w przeglądarkach opartych na Chromium.
Dziś osiągnęliśmy ważny etap wspólnych działań, ponieważ WebDriver BiDi jest już gotowy do wdrożenia w wersji produkcyjnej dla programistów, począwszy od BrowserStack.
.Selenium i BrowserStack
Niedawno BrowserStack zostało oficjalnym partnerem programistycznym Selenium, czyli dojrzałego, opartego na wolnym oprogramowaniu frameworku automatyzacji przeglądarki, który przyczynił się też do powstania WebDriver BiDi. Ta współpraca jest dowodem na to, że BrowserStack stale inwestuje w rozwijający się ekosystem testów, a także zatrudnia kilku głównych administratorów Selenium.
Częścią projektu Selenium jest Selenium Grid, który umożliwia równoległe przeprowadzanie testów na wielu urządzeniach. Samodzielne konfigurowanie siatki, zakup i obsługa kilkudziesięciu różnych urządzeń oraz utrzymywanie ich w stanie gotowości może być trudne, a w niektórych przypadkach wręcz niemożliwe.
Rozwiązania hostowane Selenium Grid, takie jak BrowserStack, mogą ułatwić uruchamianie testów na wielu różnych platformach i urządzeniach bez konieczności zarządzania nimi samodzielnie.
WebDriver BiDi w Selenium Grid
Selenium opiera się na standardzie WebDriver (brakujący BiDi), ale od jakiegoś czasu oferuje eksperymentalne wsparcie dla WebDriver BiDi. Od dziś możesz używać poleceń WebDriver BiDi w produkcji na serwerze Selenium Grid w BrowserStack.
Dzięki temu możesz korzystać z funkcji takich jak przechwytywanie żądań, zaawansowana emulacja i obsługa zdarzeń przeglądarki w czasie rzeczywistym nie tylko w Chrome, ale też w każdej przeglądarce obsługującej WebDriver BiDi.
Ten przykład pokazuje, jak nasłuchiwać zdarzeń z dziennika za pomocą WebDriver BiDi w BrowserStack. Złapane logi są też dostępne do sprawdzenia na stronie 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 to dopiero początek
Zespół automatyzacji przeglądarki Chrome gratuluje zespołowi BrowserStack wdrożenia obsługi BiDi w WebDriver. W najbliższych tygodniach zamierzamy też wprowadzić obsługę WebDriver BiDi w BrowserStack, innych narzędziach, takich jak Selenium, oraz w innych popularnych przeglądarkach.
Jeśli ten komunikat wzbudził w Tobie zainteresowanie testowaniem, ale jeszcze nie zacząłeś/aś przygody z tym tematem, zapoznaj się z naszymi kursami z testowania na web.dev.