Nos últimos três anos, a equipe de automação do navegador Chrome colaborando com outros grandes fornecedores de navegadores e ferramentas, como a BrowserStack, para criar o WebDriver BiDi, um novo protocolo de automação do navegador o que permite fluxos de trabalho de automação bidirecional em todos os navegadores. Esses os fluxos de trabalho antes só eram possíveis com o Chrome DevTools reservado em navegadores baseados no Chromium.
O dia de hoje é um marco importante desse esforço compartilhado como WebDriver BiDi finalmente está pronto para produção para desenvolvedores, começando com o BrowserStack hoje mesmo.
Selenium e BrowserStack
Recentemente, o BrowserStack se tornou um Parceiro de desenvolvimento oficial do Selenium (em inglês). uma estrutura maduro de automação de navegador de código aberto que também contribuiu para WebDriver BiDi. Essa parceria é uma prova da continuidade contínua da BrowserStack em um ecossistema de testes próspero, com a BrowserStack também empregando vários mantenedores principais do Selenium.
Parte do projeto Selenium é o Selenium Grid, que permite executar testes em vários dispositivos em paralelo. Mas definir uma grade por conta própria, adquirindo e mantendo dezenas de dispositivos diferentes, e e mantê-los disponíveis pode ser um desafio ou mesmo impossível para algumas pessoas.
As soluções de grade hospedadas do Selenium, como o BrowserStack, facilitam a execução da sua testes em muitas plataformas e dispositivos diferentes, sem precisar gerenciá-los no seu por conta própria.
WebDriver BiDi no Selenium Grid
O Selenium é baseado no padrão WebDriver (observe que o BiDi ausente), mas teve suporte experimental ao WebDriver BiDi por um tempo. A partir de hoje, você pode usar Comandos BiDi do WebDriver em produção na grade Selenium Grid hospedada do BrowserStack.
Por fim, recursos como interceptação de solicitações, emulação avançada e lidando com eventos do navegador em tempo real, e não apenas no Chrome, navegador compatível com o WebDriver BiDi.
O exemplo a seguir mostra como detectar eventos de registro usando o WebDriver BiDi no BrowserStack. Os registros capturados também ficam disponíveis para inspeção 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 é apenas o começo
A equipe de automação do navegador Chrome parabeniza a equipe do BrowserStack por lançando hoje mesmo o suporte para WebDriver BiDi! Também estamos ansiosos para o suporte ao WebDriver BiDi se expande no BrowserStack, outras ferramentas como o Selenium, além de outros navegadores importantes nas próximas semanas.
Se esse anúncio deixou você empolgado com os testes, mas ainda não começou a sua jornada de testes, confira nosso curso "Learn Testing" em web.dev.