No artigo anterior, examinamos os protocolos de automação existentes, ou seja, o WebDriver "Clássico" e o protocolo Chrome DevTools (CDP), além das respectivas vantagens e restrições.
Conheça o WebDriver BiDi, o futuro da automação de navegadores. É um novo protocolo padrão de automação de navegador que está em desenvolvimento e tem como objetivo combinar o melhor do WebDriver "Clássico" e do CDP. O WebDriver BiDi promete comunicação bidirecional, tornando-a rápida por padrão e vem com controle de baixo nível.
WebDriver BiDi | |
---|---|
WebDriver "Clássico" | Chrome DevTools Protocol (CDP) |
Melhor suporte a vários navegadores | Mensagens bidirecionais rápidas |
Padrão W3C | Oferece controle de baixo nível |
Criado para testes |
O objetivo do WebDriver BiDi é permitir que você escreva testes usando suas ferramentas favoritas e os automatize em qualquer navegador ou driver, oferecendo flexibilidade total.

Padronização
O Grupo de Trabalho BiDi do WebDriver é composto por um grupo diversificado de fornecedores de navegadores, projetos de automação de navegadores de código aberto e empresas que oferecem soluções de automação de navegadores. Essa colaboração garante um futuro promissor para a automação de navegadores.

A maior parte do trabalho foi feita neste repositório do GitHub. Há reuniões mensais com todos os principais fornecedores de navegadores que relatam o progresso real e discutem detalhes discutíveis e desconhecidos. O grupo de trabalho entre empresas garante que as decisões estejam alinhadas a todas as partes interessadas.
Estabelecer e implementar um novo protocolo não é uma tarefa fácil. Ele exige esforços combinados de vários fornecedores que colaboram e trabalham juntos. O processo envolve:
- Especificação: um processo de solicitação de comentários (RFC, na sigla em inglês) para coletar feedback sobre a proposta.
- Verificação: uma série de testes que podem ser executados em várias plataformas, servindo como a fonte de verdade para todas as implementações.
- Implementação: os navegadores implementam os protocolos de acordo com a especificação e passam nos testes de verificação.
Desafios
Nesta seção, vamos abordar os desafios da implementação do WebDriver BiDi, que busca encontrar um equilíbrio entre compatibilidade, usabilidade e implementabilidade.
Além de um clone do CDP: adote a compatibilidade com vários navegadores
O CDP, com elementos específicos do Chrome e do DevTools, não pode ser replicado diretamente na especificação BiDi do WebDriver. Implementar o CDP como está seria inviável para outros navegadores, tornando uma especificação que apenas documenta como fazer isso inútil.
Como garantir baixa latência
O WebDriver BiDi precisa ser projetado para lidar com alta latência sem sacrificar a performance. No CDP, a latência é baixa porque o cliente e o servidor quase sempre são executados na mesma máquina física, mas não é o caso do WebDriver BiDi. Portanto, o WebDriver BiDi precisa minimizar o número de ida e volta necessários entre o cliente e o servidor.
Priorizar a ergonomia em BiDi
Embora não seja esperado que os desenvolvedores criem clientes BiDi do WebDriver do zero, é fundamental evitar a complicação excessiva do protocolo. Um BiDi muito complexo não só seria difícil de implementar, como também seria difícil de trabalhar, dificultando a adoção e o uso.
Como garantir a implementabilidade da BiDi
O WebDriver BiDi precisa ser implementado de maneira realista, levando em conta as limitações de vários navegadores. Por exemplo, manter todos os objetos JavaScript expostos aos clientes pelo BiDi pode resultar em vazamentos de memória, enquanto não manter nenhum deles dificulta a depuração e a interação com o JavaScript de uma página. É essencial encontrar um equilíbrio que permita a automação eficaz do navegador sem comprometer o desempenho.
Superar desafios
Nesta seção, vamos discutir as estratégias usadas para lidar com os desafios da implementação do WebDriver BiDi.
Prototipagem rápida
Resolver o desafio da capacidade de implementação é crucial para o sucesso do BiDi. Para acelerar o progresso da especificação e dos testes, adotamos uma abordagem de prototipagem rápida usando o NodeJS. Isso não apenas nos permite testar diferentes soluções, mas também facilita o desenvolvimento de testes da plataforma da Web.
Projete pensando na performance
Essa decisão de design é motivada pelo desempenho, já que, em alguns casos, a latência é alta no WebDriver BiDi. Por exemplo, ao recuperar um ID e valor de objeto do navegador, o WebDriver BiDi exige apenas uma ida e volta, enquanto o CDP exige duas. Isso ocorre porque o WebDriver BiDi pode retornar o ID e o valor em uma única resposta (o resultado não pode ser serializável em JSON), enquanto o CDP precisa retornar separadamente.
Ênfase nos testes de plataforma da Web (WPT)
Os testes de plataforma da Web têm um papel significativo no trabalho do BiDi. Atualmente, o WPT cobre o WebDriver "Classic" e o WebDriver BiDi, e serve como uma referência confiável para todas as implementações. Esses testes foram criados para serem executados e transmitidos em várias implementações, garantindo a execução consistente do protocolo entre navegadores, o que é vital para o sucesso do WebDriver BiDi. Confira o resultado mais recente do WPT no painel.
Qual é o plano e o progresso atual?
Consulte o plano de trabalho do WebDriver BiDi para entender a direção do projeto. O roteiro está em desenvolvimento e em constante evolução.
Consulte os Testes da plataforma da Web mais recentes para conferir o status de implementação em todos os navegadores, já que eles servem como a fonte da verdade.
Acompanhe os marcos do projeto para monitorar o progresso.
Descubra os feitos de 2023 e fique por dentro das novidades.
Como ajudar a oferecer suporte ao BiDi do WebDriver
Você está animado com o futuro da automação de navegadores com o WebDriver BiDi? Confira como mostrar seu apoio:
- Seja um testador e usuário inicial, ajudando a moldar o futuro do WebDriver BiDi.
- Avise todo mundo! Compartilhe o projeto nas mídias sociais usando a hashtag #WebDriverBiDi.
- Pedir suporte. Envie uma solicitação de recurso ou confira as ferramentas favoritas para saber se elas têm planos de adotar o WebDriverBiDi.
- Participe do RFC, enviando feedback sobre as APIs.
Dúvidas comuns
O WebDriver BiDi vai substituir o Chrome DevTools Protocol (CDP)?
Não. Os navegadores baseados no Chromium vão continuar usando o CDP para fins de depuração, enquanto o WebDriver BiDi é a nova especificação para atender às necessidades de teste com uma API mais ergonômica.
Como o Puppeteer usa o CDP, isso significa que ele será descontinuado?
Não. No entanto, o WebDriver BiDi vai permitir que o Puppeteer se torne uma ferramenta de automação para vários navegadores.
Você tem um roteiro público?
Sim, acesse nosso cronograma no GitHub.