- Automação/teste web tinha o Selenium como padrão de fato
- É fácil de começar a usar e suporta praticamente todas as linguagens de programação
- É suficiente, mas só até aí
- Não funciona tão bem em sites com frameworks JavaScript modernos (Angular, React, ..)
→ Isso não quer dizer que não funcione. Quer dizer que não funciona tão bem
- Dizem que a documentação é boa, mas na prática, assim que você sai um pouco do caminho principal, fica difícil encontrar exemplos
- Tentei usar coisas como Chai, Mocha e Cypress, mas a configuração é completamente diferente e, para um desenvolvedor Python, não é fácil
- Dezenas de substitutos do Selenium foram criados, mas a maioria desapareceu depois de alguns anos
Enter Playwright
- Excelente, e o fato de ser feito pela Microsoft também é importante. Deve ter suporte por muito tempo
- O recurso matador do Playwright é a "geração automática de testes"
- Você abre o navegador e executa os passos; ele grava isso e transforma em um script Python
- Poupa o trabalho de procurar coisas como XPath no Selenium
- Os passos salvos assim podem ser executados quase sem nenhuma modificação
- Outra vantagem é poder salvar o processo de execução em vídeo e assistir depois
- A única desvantagem é que ainda é algo novo. Há muitos bugs e a documentação não é boa
- Mas, no geral, para todo projeto novo eu provavelmente escolheria Playwright
4 comentários
Tendo usado
puppeteere conseguido migrar totalmente o onboarding paraplaywright, acho que só o recurso de geração de código doplaywrightjá vale bastante a pena a mudança.Para quem usa só o Puppeteer há muito tempo e trabalha apenas com Node, mudar para o Playwright realmente não parece algo tão fácil de fazer de imediato.
Em vez de pensar primeiro em migrar projetos existentes, que tal considerar ativamente adotar o Playwright ao iniciar novos projetos? Ou então também pode ser uma boa começar um projeto de brinquedo.
Acho que o Playwright tem APIs mais consistentes entre linguagens (JS, Python) e parece um pouco mais enxuto.
Especialmente no caso do Python, o suporte a async é muito bom haha