Negli ultimi tre anni, il team di automazione del browser di Chrome ha collaborato con altri importanti fornitori di browser e strumenti come BrowserStack per creare WebDriver BiDi, un nuovo protocollo di automazione del browser che consente flussi di lavoro di automazione bidirezionale tra i browser. In precedenza, queste flussi di lavoro erano possibili solo con il protocollo proprietario di Chrome DevTools nei browser basati su Chromium.
Oggi è un giorno importante per questo impegno condiviso, poiché WebDriver BiDi è finalmente pronto per la produzione per gli sviluppatori, a partire da BrowserStack.
Selenium e BrowserStack
Di recente BrowserStack è diventato un partner di sviluppo ufficiale di Selenium, un framework di automazione del browser maturo e open source che ha contribuito anche a WebDriver BiDi. Questa partnership è un segno del continuo investimento di BrowserStack in un ecosistema di test fiorente, in cui l'azienda impiega anche diversi responsabili principali di Selenium.
Selenium Grid fa parte del progetto Selenium e consente di eseguire test su più dispositivi in parallelo. Tuttavia, configurare una griglia autonomamente, acquisire e gestire dozzine di dispositivi diversi e mantenerli disponibili può essere complicato o addirittura impossibile per alcuni.
Le soluzioni Selenium Grid ospitate come BrowserStack possono semplificare l'esecuzione dei test su molte piattaforme e dispositivi diversi, senza doverli gestire autonomamente.
WebDriver BiDi su Selenium Grid
Selenium si basa sullo standard WebDriver (nota la mancanza di BiDi), ma da un po' di tempo offre il supporto sperimentale per WebDriver BiDi. A partire da oggi, puoi utilizzare i comandi WebDriver BiDi in produzione su Selenium Grid ospitato da BrowserStack.
In questo modo, finalmente, è possibile attivare funzionalità come l'intercettazione delle richieste, l'emulazione avanzata e la gestione degli eventi del browser in tempo reale, non solo in Chrome, ma in ogni browser che supporta WebDriver BiDi.
L'esempio seguente mostra come ascoltare gli eventi di log utilizzando WebDriver BiDi su BrowserStack. I log rilevati sono quindi disponibili anche per l'ispezione su 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 è solo l'inizio
Il team di automazione del browser Chrome si congratula con il team di BrowserStack per il lancio odierno del supporto di WebDriver BiDi. Inoltre, nelle prossime settimane prevediamo di estendere il supporto di WebDriver BiDi a BrowserStack, ad altri strumenti come Selenium e ad altri browser principali.
Se questo annuncio ti ha entusiasmato per i test, ma non hai ancora iniziato il tuo percorso di test, consulta il nostro corso Impara a eseguire test su web.dev.