Automação com WebDriver BiDi agora disponível no BrowserStack

Matthias Rohmer
Matthias Rohmer

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.