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

Matthias Rohmer
Matthias Rohmer

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.