W ciągu ostatnich 3 lat zespół ds. automatyzacji przeglądarek w Chrome współpracował z innymi głównymi dostawcami przeglądarek i narzędzi, takich jak BrowserStack, nad utworzeniem WebDriver BiDi – nowego protokołu automatyzacji przeglądarek, który umożliwia dwukierunkowe przepływy pracy automatyzacji w różnych przeglądarkach. Wcześniej te przepływy pracy były możliwe tylko w przypadku zastrzeżonego protokołu Narzędzi deweloperskich Chrome 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ł oficjalnym partnerem ds. rozwoju firmy Selenium, dopracowanej platformy do automatyzacji przeglądarek typu open source, która również przyczyniła się do powstania WebDriver BiDi. To partnerstwo jest dowodem na to, że BrowserStack stale inwestuje w rozwijanie ekosystemu 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 dostępności może być trudne, a w niektórych przypadkach nawet niemożliwe.
Rozwiązania hostowane w 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 planujemy rozszerzyć obsługę WebDriver BiDi w innych narzędziach, takich jak Selenium, oraz w innych popularnych przeglądarkach.
Jeśli ten komunikat wzbudził w Tobie zainteresowanie testowaniem, ale jeszcze nie rozpocząłeś/aś swojej przygody z tym tematem, zapoznaj się z naszymi kursami z testowania na web.dev.