De afgelopen drie jaar heeft het Browser Automation-team van Chrome samengewerkt met andere grote browser- en toolingleveranciers zoals BrowserStack om WebDriver BiDi te creëren: een nieuw browserautomatiseringsprotocol dat bidirectionele automatiseringsworkflows in verschillende browsers mogelijk maakt. Deze workflows waren voorheen alleen mogelijk met het eigen Chrome DevTools Protocol in Chromium-gebaseerde browsers.
Vandaag markeert een belangrijke mijlpaal in deze gezamenlijke inspanning, nu WebDriver BiDi eindelijk productieklaar wordt voor ontwikkelaars, te beginnen met BrowserStack vandaag.
Selenium en BrowserStack
Onlangs werd BrowserStack een officiële ontwikkelingspartner van Selenium , een volwassen, open-source browserautomatiseringsframework dat ook heeft bijgedragen aan WebDriver BiDi. Deze samenwerking is een bewijs van de voortdurende investering van BrowserStack in een bloeiend test-ecosysteem, waarbij BrowserStack ook verschillende kernonderhouders van Selenium in dienst heeft.
Onderdeel van het Selenium-project is Selenium Grid, waarmee je tests parallel op meerdere apparaten kunt uitvoeren. Maar zelf een netwerk opzetten, tientallen verschillende apparaten aanschaffen en onderhouden, en deze beschikbaar houden, kan voor sommigen een uitdaging of zelfs onmogelijk zijn.
Gehoste Selenium Grid-oplossingen zoals BrowserStack kunnen het eenvoudiger maken om uw tests op veel verschillende platforms en apparaten uit te voeren, zonder ze zelf te beheren.
WebDriver BiDi op Selenium Grid
Selenium is gebaseerd op de WebDriver-standaard (let op de ontbrekende BiDi) maar heeft al een tijdje experimentele ondersteuning voor WebDriver BiDi. Vanaf vandaag kunt u WebDriver BiDi-opdrachten in productie gebruiken op het gehoste Selenium Grid van BrowserStack!
Dit maakt eindelijk functies mogelijk zoals het onderscheppen van verzoeken, geavanceerde emulatie en het in realtime verwerken van browsergebeurtenissen - en niet alleen in Chrome, maar in elke browser die WebDriver BiDi ondersteunt.
Het volgende voorbeeld laat zien hoe u kunt luisteren naar logboekgebeurtenissen met behulp van WebDriver BiDi op BrowserStack. Gevangen logs zijn dan ook beschikbaar voor inspectie op 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 is nog maar het begin
Het Chrome Browser Automation-team feliciteert het team van BrowserStack met het vandaag lanceren van hun WebDriver BiDi-ondersteuning! We kijken er ook naar uit om de ondersteuning voor WebDriver BiDi de komende weken uit te breiden naar BrowserStack, andere tools zoals Selenium en andere grote browsers.
En als deze aankondiging u enthousiast heeft gemaakt over testen, maar u nog niet aan uw testtraject bent begonnen, bekijk dan zeker onze cursus Learn Testing op web.dev .