Nos últimos três anos, a equipe de automação de navegadores do Chrome tem colaborado com outros fornecedores de ferramentas e navegadores importantes, como o BrowserStack, para criar o WebDriver BiDi, um novo protocolo de automação de navegadores que permite fluxos de trabalho de automação bidirecional em todos os navegadores. Esses fluxos de trabalho só eram possíveis com o protocolo proprietário do Chrome DevTools em navegadores baseados no Chromium.
O dia de hoje é um marco importante desse esforço compartilhado, já que o WebDriver BiDi finalmente fica pronto para produção para os desenvolvedores, começando pelo BrowserStack hoje.
Selenium e BrowserStack
Recentemente, a BrowserStack se tornou um parceiro de desenvolvimento oficial do Selenium, um framework de automação de navegador maduro e de código aberto que também contribuiu para o WebDriver BiDi. Essa parceria é uma prova do investimento contínuo da BrowserStack em um ecossistema de testes próspero, com a BrowserStack também empregando vários mantenedores principais do Selenium.
Parte do projeto do Selenium é o Selenium Grid, que permite executar testes em vários dispositivos em paralelo. No entanto, configurar uma grade por conta própria, adquirir e manter dezenas de dispositivos diferentes e mantê-los disponíveis pode ser desafiador ou até impossível para alguns.
Soluções hospedadas do Selenium Grid, como o BrowserStack, podem facilitar a execução dos testes em várias plataformas e dispositivos diferentes, sem que você precise gerenciar tudo.
WebDriver BiDi no Selenium Grid
O Selenium é baseado no padrão do WebDriver (observe o BiDi ausente), mas tem suporte experimental para o WebDriver BiDi há algum tempo. A partir de hoje, você pode usar comandos BiDi do WebDriver na produção no Selenium Grid hospedado do BrowserStack.
Isso finalmente ativa recursos como interceptação de solicitações, emulação avançada e processamento de eventos do navegador em tempo real, não apenas no Chrome, mas em todos os navegadores que oferecem suporte ao WebDriver BiDi.
O exemplo a seguir mostra como detectar eventos de registro usando o WebDriver BiDi no BrowserStack. Os registros encontrados também estão disponíveis para inspeção em 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!
})();
O BrowserStack é só o começo
A equipe de automação do navegador Chrome parabeniza a equipe da BrowserStack por lançar o suporte ao WebDriver BiDi hoje. Também esperamos que o suporte ao WebDriver BiDi seja expandido para o BrowserStack, outras ferramentas como o Selenium e outros navegadores importantes nas próximas semanas.
Se esse anúncio deixou você animado para testar, mas você ainda não começou sua jornada de testes, confira nosso curso de testes no web.dev.