Playwright para JavaScript (Node.js): guia completo com exemplos
Playwright é uma biblioteca moderna de código aberto para automação de navegadores, desenvolvida pela Microsoft. Ela fornece uma API unificada para controlar Chromium, Firefox e WebKit (motor do Safari) através do protocolo DevTools. Diferente do Selenium, o Playwright foi projetado desde o início para funcionar com aplicações web modernas e oferece suporte a cenários como interceptação de requisições de rede, emulação de dispositivos móveis, trabalho com múltiplas páginas e abas, além de espera automática por elementos.
O principal objetivo do Playwright é o teste end-to-end (E2E) de aplicações web. No entanto, suas capacidades vão muito além dos testes: a biblioteca é usada para scraping de sites dinâmicos (SPA), automação de tarefas repetitivas (como preenchimento de formulários), criação de screenshots e relatórios em PDF, além de monitoramento de desempenho de páginas web. Com suporte a todos os três principais motores de navegador, você pode ter certeza de que sua aplicação funciona corretamente em qualquer ambiente.
A principal vantagem do Playwright sobre concorrentes é a velocidade e confiabilidade. A biblioteca usa uma arquitetura assíncrona baseada em promessas, aguarda automaticamente o aparecimento de elementos (sem necessidade de escrever sleep()), e também lida com iframes, pop-ups e interceptação de mensagens do console do navegador. O Playwright também oferece um gerador de testes integrado (codegen), que grava suas ações no navegador e as transforma em código pronto.
Instalação do Playwright
Para instalar o Playwright em um projeto Node.js, execute os seguintes comandos no terminal:
npm init -y
npm install playwright
npx playwright install
O primeiro comando cria o arquivo package.json, o segundo instala a biblioteca em si, e o terceiro baixa os navegadores (Chromium, Firefox e WebKit). Se você quiser instalar apenas um navegador, use npx playwright install chromium.
Para TypeScript, instale também os tipos:
npm install -D @playwright/test
Se você estiver usando o Playwright como framework de testes, é recomendável instalar o @playwright/test, que inclui o executor de testes, fixtures e configuração.
Início rápido: exemplo mínimo funcional
Crie um arquivo exemplo.js e cole o seguinte código:
const { chromium } = require('playwright');
(async () => {
// Inicia o navegador (headless: true — sem interface gráfica)
const browser = await chromium.launch({ headless: true });
// Cria uma nova página (aba)
const page = await browser.newPage();
// Navega para o site
await page.goto('https://exemplo.com');
// Obtém o título da página
const titulo = await page.title();
console.log('Título da página:', titulo);
// Tira um screenshot
await page.screenshot({ path: 'exemplo.png' });
// Fecha o navegador
await browser.close();
})();
Execute o script com o comando node exemplo.js. Como resultado, você verá o título da página no console, e um arquivo exemplo.png com o screenshot será criado na pasta.
Este exemplo demonstra o ciclo básico de trabalho com Playwright: iniciar o navegador, criar uma página, navegar, interagir com o DOM e fechar.
Principais métodos e classes do Playwright
Abaixo estão os principais métodos e classes da biblioteca. Para cada um, são fornecidos a assinatura, uma breve descrição e um exemplo prático.
1. browser.newPage()
Assinatura: async browser.newPage(options?: BrowserContextOptions): Promise<Page>
Descrição: Cria uma nova página (aba) no contexto atual do navegador. Cada página é isolada das outras — elas
Também na biblioteca
Frameworks CLI para TypeScript: visão geral completa e exemplos de uso
MailKit para C# (.NET): guia completo com exemplos práticos
Supertest para JavaScript (Node.js): guia completo com exemplos práticos
Thymeleaf para Java: guia completo com exemplos