Suporte Puppeteer para o padrão BiDi WebDriver entre navegadores – Mozilla Hacks

PUBLICIDADE

Suporte Puppeteer para o padrão BiDi WebDriver entre navegadores - Mozilla Hacks

Temos o prazer de compartilhar que o Puppeteer agora oferece suporte ao padrão WebDriver BiDi de próxima geração para vários navegadores. Este novo protocolo torna mais fácil para os desenvolvedores web escreverem testes automatizados que funcionam em vários mecanismos de navegador.

Como faço para usar o Puppeteer com o Firefox?

O protocolo WebDriver BiDi é compatível a partir do Puppeteer v21.6.0. Ao ligar puppeteer.launch passar "firefox" como opção de produto, e "webDriverBiDi" como opção de protocolo:

const browser = await puppeteer.launch({
  product: 'firefox',
  protocol: 'webDriverBiDi',
})

Você também pode usar o "webDriverBiDi" protocolo ao testar no Chrome, refletindo o fato de que o WebDriver BiDi oferece um padrão único para automação moderna entre navegadores.

No futuro esperamos "webDriverBiDi" para se tornar o protocolo padrão ao usar o Firefox no Puppeteer.

O Puppeteer já não oferece suporte ao Firefox?

O Puppeteer teve suporte experimental para Firefox com base em uma reimplementação parcial do protocolo proprietário Chrome DevTools (CDP). Essa abordagem teve a vantagem de funcionar sem alterações significativas no código existente do Puppeteer. No entanto, a implementação do CDP no Firefox está incompleta e tem limitações técnicas significativas. Além disso, o protocolo CDP em si não foi projetado para ser compatível com vários navegadores e sofre alterações frequentes, tornando-o inadequado como uma solução de longo prazo para automação entre navegadores.

Para superar esses problemas, trabalhamos com o Grupo de Trabalho WebDriver no W3C para criar um protocolo de automação padrão que atenda às necessidades dos clientes modernos de automação de navegadores: este é o WebDriver BiDi. Para obter mais detalhes sobre o design do protocolo e como ele se compara ao protocolo WebDriver clássico baseado em HTTP, consulte nossas postagens anteriores.

À medida que o processo de padronização progrediu, a equipe do Puppeteer adicionou um back-end WebDriver BiDi no Puppeteer e forneceu feedback sobre a especificação para garantir que ela atenda às necessidades dos usuários do Puppeteer e que o design do protocolo permita que as ferramentas existentes baseadas em CDP façam uma transição fácil para o WebDriver BiDi. O resultado é um protocolo único baseado em padrões abertos que pode conduzir tanto o Chrome quanto o Firefox no Puppeteer.

Todos os recursos do Puppeteer são suportados?

Ainda não; WebDriver BiDi ainda é um trabalho em andamento e ainda não cobre todo o conjunto de recursos do Puppeteer.

Em comparação com a implementação do Chrome+CDP, existem algumas lacunas de recursos, incluindo suporte para acesso ao armazenamento de cookies, interceptação de solicitações de rede, alguns recursos de emulação e permissões. Esses recursos estão sendo padronizados ativamente e serão integrados assim que estiverem disponíveis. Para o Firefox, o único recurso que falta em comparação com a implementação do Firefox+CDP é o acesso a cookies. Além disso, o WebDriver BiDi já oferece melhorias, incluindo melhor suporte para Firefox multiprocesso, essencial para testar alguns sites. Mais informações sobre o conjunto completo de APIs suportadas podem ser encontradas na documentação do Puppeteer e, à medida que novos recursos WebDriver-BiDi forem habilitados no Gecko, publicaremos detalhes no blog Firefox Developer Experience.

No entanto, acreditamos que o suporte do Firefox baseado em WebDriver no Puppeteer atingiu um nível de qualidade que o torna adequado para muitos cenários reais de automação. Por exemplo, na Mozilla, portamos com sucesso nossos testes Puppeteer para pdf.js do Firefox+CDP para Firefox+WebDriver BiDi.

O suporte CDP do Firefox está acabando?

Atualmente não temos um cronograma específico para remover o suporte do CDP. No entanto, manter vários protocolos não é um bom uso de nossos recursos e esperamos que o WebDriver BiDi seja o futuro da automação remota no Firefox. Se você estiver usando o suporte CDP fora do contexto do Puppeteer, adoraríamos ouvir sua opinião (veja abaixo), para que possamos entender seus casos de uso e ajudar na transição para o WebDriver BiDi.

Onde posso fornecer feedback?

Para quaisquer problemas que você enfrentar ao portar testes do Puppeteer para BiDi, abra os problemas no rastreador de problemas do Puppeteer, a menos que você possa verificar se o bug está na implementação do Firefox; nesse caso, registre um bug no Bugzilla.

Se você estiver usando CDP com Firefox, junte-se ao canal matriz #webdriver para que possamos discutir seu caso de uso e requisitos e ajudá-lo a resolver quaisquer problemas que encontrar ao portar seu código para WebDriver BiDi.

Atualizar: A equipe do Puppeteer publicou “Aproveite o poder do WebDriver BiDi: automação do Chrome e do Firefox com o Puppeteer“.

Engenheiro de software focado em manter uma web aberta e saudável. Membro da equipe principal de testes de plataforma web.

Mais artigos de James Graham…

Fonte: Tecmundo, Olhar Digital, MeioBit

Mais recentes

PUBLICIDADE

WP Twitter Auto Publish Powered By : XYZScripts.com