Playwright vs Puppeteer: qual usar para automação de navegador no CI?
O Puppeteer é uma biblioteca focada em automação do Chrome/Chromium; o Playwright é uma ferramenta cross-browser com um test runner integrado.
O Puppeteer automatiza o Chromium (e o Chrome) com uma API Node limpa, popular para scraping, PDFs e testes só no Chrome. O Playwright (da Microsoft) controla Chromium, Firefox e WebKit, adiciona espera automática e traz seu próprio test runner.
| Puppeteer | Playwright | |
|---|---|---|
| Navegadores | Chromium/Chrome (Firefox experimental) | Chromium, Firefox, WebKit |
| Test runner | Traga o seu próprio | Integrado (@playwright/test) |
| Espera automática | Manual / limitada | Integrada |
| Linguagens | JS/TS | JS/TS, Python, Java, .NET |
| Uso típico | Scraping, PDFs, automação do Chrome | Testes E2E cross-browser |
No CI
Para testes end-to-end, o test runner integrado, a espera automática e a cobertura cross-browser do Playwright geralmente tornam o CI mais rápido de configurar e menos instável. O Puppeteer é mais enxuto e excelente quando você só mira o Chromium e quer uma biblioteca de automação focada (scraping, geração de PDFs, smoke checks simples). Ambos precisam dos binários dos navegadores instalados no CI, uma falha comum de configuração.
Instabilidade
Scripts de Puppeteer costumam precisar de esperas explícitas, que podem ficar instáveis por questões de timing; a espera automática do Playwright reduz isso. De qualquer forma, refazer falhas transitórias impede que uma instabilidade pontual derrube o build inteiro.
O veredito
E2E cross-browser com um runner completo de fábrica: Playwright. Automação apenas no Chromium, scraping ou PDFs como biblioteca focada: Puppeteer. Instale os navegadores no CI e planeje retries para testes instáveis em ambos.