Playwright: o que é, para que serve e como testamos um site inteiro com ele

Notebook e dois celulares mostrando o mesmo site, com um relatório de testes do Playwright cheio de verificações verdes no monitor

Playwright: o que é? É uma ferramenta gratuita, criada pela Microsoft, que controla o navegador sozinha: abre páginas, clica, preenche formulários e confere se tudo aparece como deveria. Ela é usada principalmente para testes automatizados, aqueles que verificam um site inteiro em segundos, sem ninguém clicando página por página.

Eu não vou explicar só na teoria. O TechDescomplicado tem uma suíte de testes em Playwright que confere o site no ar antes de qualquer mudança. Neste texto eu mostro o que é o Playwright, para que serve, como ele se compara ao Selenium e ao Cypress e como ele funciona num site de verdade, com números da rodada de hoje.

O que é o Playwright

O Playwright é um framework de automação e testes de navegador lançado pela Microsoft em 2020. É de código aberto (licença Apache 2.0), tem perto de 97 mil estrelas no GitHub e funciona no Windows, no macOS e no Linux. Com o mesmo código, ele controla os três motores de navegador que importam hoje:

  • Chromium, o motor do Chrome e do Edge;
  • Firefox;
  • WebKit, o motor do Safari.

Os testes podem ser escritos em TypeScript, JavaScript, Python, Java ou C# (.NET). Ele também simula celulares, como um Pixel ou um iPhone, ajustando o tamanho da tela, o toque e o navegador. Junto vem o Playwright Test, que roda os testes em paralelo, gera relatório em HTML e grava um “filme” passo a passo de cada teste que falha (o trace viewer).

Uma analogia: o Playwright é um estagiário incansável sentado na frente do navegador. Você escreve uma vez o roteiro (“abra a página, clique em Assinar, confira se apareceu a mensagem”), e ele repete esse roteiro quantas vezes você quiser, em vários navegadores, em segundos.

Para que serve o Playwright

  • Testes de ponta a ponta (E2E): conferir o site como um visitante usaria, do clique ao resultado na tela. É o uso principal.
  • Testes em vários navegadores e no celular com o mesmo código.
  • Automação de tarefas repetitivas no navegador, como tirar prints de páginas ou preencher sistemas internos.
  • Coleta de dados de páginas (web scraping), respeitando os termos de cada site.
  • Agentes de IA: o Playwright MCP e o Playwright CLI deixam assistentes como o Claude Code e o Copilot controlarem um navegador de verdade. É por isso que “playwright mcp” virou uma das buscas mais comuns sobre a ferramenta.

Como usamos o Playwright no TechDescomplicado

A suíte de testes do site tem 108 testes em 5 arquivos, escritos em TypeScript. Cada teste roda duas vezes: num Chrome de computador e num Pixel 7 simulado, porque boa parte de quem lê o site está no celular. O que cada arquivo confere:

ArquivoO que ele confere
PáginasAs 17 páginas públicas abrem com status 200, em português, com título, logo e rodapé, sem rolagem para os lados e sem erro no console. Também confere a página 404, a busca e o tema claro e escuro.
FormuláriosNewsletter, Contato e Para Empresas: campos obrigatórios, limites de tamanho e aviso de privacidade.
LaboratórioCadastro de membro, o que o visitante pode ou não ver no AiTester, arquivos protegidos e a Arena de jogos (trocar desafio, copiar prompt, abrir e fechar o jogo).
reCAPTCHAO anti-robô só é baixado quando a pessoa toca no formulário, e o envio leva o token.
VisualOs efeitos do visual novo, incluindo o modo “reduzir movimento”.
Suíte E2E do TechDescomplicado, Playwright 1.63.

Alguns cuidados que fazem diferença num site real: os testes entram com os cookies recusados, para o aviso de cookies não cobrir os botões no celular e para nenhuma visita de teste ir para as estatísticas. Rodam só 2 abas ao mesmo tempo, porque a hospedagem é compartilhada e o firewall bloqueia quem faz pedidos demais. E os testes que enviam formulário ou criam conta de verdade ficam separados e só rodam quando eu ligo de propósito.

Um trecho do teste de páginas, para você ter ideia de como é o código:

test(`${caminho} abre sem erro`, async ({ page, errosDeConsole }) => {
  const resposta = await page.goto(caminho);
  expect(resposta?.status()).toBe(200);
  await expect(page.locator('html')).toHaveAttribute('lang', /pt/i);
  await expect(page.locator('h1').first()).toBeVisible();
  await semRolagemLateral(page);
  expect(errosRelevantes(errosDeConsole), 'erros no console').toEqual([]);
});

Repare que não tem nenhuma pausa do tipo “espere 3 segundos”. O Playwright espera sozinho o elemento aparecer antes de conferir, o que elimina boa parte dos testes que falham “às vezes”, o pesadelo de quem automatiza teste.

A rodada de hoje: 98 testes aprovados em menos de 1 minuto

Rodei a suíte de leitura contra o site no ar em 8 de outubro. Na primeira rodada, 86 testes passaram, 0 falharam e 14 foram pulados, em 48 segundos. Fazer a mesma conferência à mão, nas 17 páginas, em computador e celular, levaria uma tarde.

Os 14 pulados contaram uma história útil. Dois precisam de uma conta de membro de teste, que eu não passo na rotina, e ficam pulados de propósito. Os outros 12 testavam o visual novo do site e foram escritos quando ele só existia numa prévia escondida, que exigia uma chave. O visual foi para o ar em 7 de outubro, mas os testes continuaram presos à prévia. Resultado: nenhum teste da rotina protegia a animação e o modo “reduzir movimento” do site no ar. Nada tinha quebrado; o que apareceu foi um buraco de cobertura.

A correção foi simples: apontei os 12 testes para o site público. Um deles mudou de sentido. Na prévia, ele conferia se dava para desligar um efeito pelo endereço da página; no site no ar, passou a conferir o contrário, que um visitante não consegue desligar nada mexendo na URL. Na segunda rodada, na mesma noite: 98 aprovados, 0 falhas e só os 2 pulados de propósito, em 59 segundos.

Rodada de 08/10AprovadosFalhasPuladosTempo
Antes da correção8601448 s
Depois da correção9802 (conta de membro)59 s
Suíte de leitura do TechDescomplicado, rodada contra o site no ar.

A lição vale para qualquer ferramenta: teste automatizado também precisa de manutenção. Quando o produto muda, o teste tem que acompanhar, senão ele continua verde sem testar o que está em produção.

O que os testes já pegaram aqui

  • Uma fonte de 327 KB que ninguém via. O WooCommerce carregava uma fonte e scripts em páginas que não têm loja. Depois da correção, virou um teste fixo: se a fonte voltar, o teste falha.
  • Jogos que abriam em branco. Um script em Playwright abriu os 60 jogos da Arena para tirar as capas e descobriu que 17 abriam sem desenhar nada. Hoje esses jogos avisam o visitante no celular.
  • Controles na tela do celular. Antes de publicar o player do celular, um teste confirmou que as teclas virtuais chegavam aos 43 jogos que desenham na tela.

Playwright vs Selenium vs Cypress

São as três ferramentas mais citadas em automação de navegador. A escolha depende do projeto, não existe uma vencedora para tudo:

PlaywrightSeleniumCypress
Quem mantémMicrosoft (desde 2020)Comunidade SeleniumHQ (desde 2004)Empresa Cypress
LinguagensTypeScript, JavaScript, Python, Java, C#Java, Python, C#, JavaScript, RubyJavaScript e TypeScript
NavegadoresChromium, Firefox e WebKit (Safari)Chrome, Firefox, Safari e EdgeChrome, Edge e Firefox; WebKit experimental
Espera automáticaSimPrecisa configurarSim
CelularSimula aparelhosApps nativos com o AppiumSimula o tamanho da tela
Fontes: documentação do Playwright e do Cypress e comparativo da AIMultiple (2026).

Na prática: o Selenium ainda é o padrão em empresas com testes antigos em Java e quando é preciso testar aplicativo nativo de celular. O Cypress é muito querido por times de front-end em JavaScript. O Playwright costuma ser a escolha de quem começa hoje e quer vários navegadores, várias linguagens e a espera automática sem configurar nada. Foi o nosso caso.

Como começar com o Playwright

Para a versão em TypeScript ou JavaScript, você precisa do Node.js (versões 22, 24 ou 26) e de um sistema recente (Windows 11, macOS 14 ou Linux Debian/Ubuntu atual). Numa pasta vazia, um comando instala tudo e cria um teste de exemplo:

npm init playwright@latest

Depois, npx playwright test roda os testes, e npx playwright codegen abre um navegador que grava os seus cliques e escreve o código do teste para você. É o jeito mais rápido de aprender: clique, veja o código aparecer e ajuste.

O olhar de QA: nota 10/10

No meu trabalho como desenvolvedor e SDET (o profissional de QA que automatiza testes), o Playwright é uma das ferramentas que mais uso no dia a dia. Uso para testar sistemas, para automatizar tarefas repetitivas em portais e até para dar “mãos” aos modelos de IA, como o Claude e o ChatGPT, que passam a navegar e agir em sistemas de verdade. Ele é versátil, fácil de entender e de manipular, e dá conta tanto de aplicações modernas quanto de sistemas legados, antigos e difíceis de automatizar. Com o Playwright MCP, ele se conecta a praticamente qualquer assistente ou automação.

A suíte do TechDescomplicado mostra na prática o que essa experiência ensina. Os 108 testes passam pelas páginas, pelos formulários e pelo Laboratório em menos de um minuto, mas a rapidez não é o principal. O que segura a suíte de pé é a espera automática, que evita os testes que falham “às vezes”, e o trace, que mostra passo a passo onde um teste quebrou. Isso importa porque teste instável destrói a confiança: depois da terceira falha falsa, ninguém olha mais o relatório. E os 12 testes presos à prévia deixaram outra lição, que vale para qualquer ferramenta: o número de testes verdes não diz nada se eles não testam o que está em produção. De tempos em tempos, vale olhar não só o que falhou, mas o que foi pulado e por quê.

Minha nota para o Playwright: 10/10.

Se você gosta de bastidores, veja também os plugins que usamos no site, como chegamos a GEO 100 com o llms.txt e o nosso checklist para testar agentes de IA.

Perguntas frequentes sobre o Playwright

O que é o Playwright?

É uma ferramenta gratuita e de código aberto da Microsoft que controla o navegador por código. Serve principalmente para testes automatizados de sites, em Chromium, Firefox e WebKit, com TypeScript, JavaScript, Python, Java ou C#.

O Playwright é da Microsoft?

Sim. Foi lançado pela Microsoft em 2020 e é mantido por ela no GitHub, com licença Apache 2.0.

Qual a diferença entre Cypress e Playwright?

Os dois esperam os elementos sozinhos e são populares em front-end. O Cypress é só JavaScript e TypeScript e tem suporte ao WebKit (Safari) ainda experimental. O Playwright aceita cinco linguagens e testa Chromium, Firefox e WebKit com o mesmo código.

Playwright ou Selenium: qual escolher?

Para projeto novo de testes web, o Playwright costuma ser mais simples de configurar e mais estável. O Selenium segue forte em empresas com testes antigos e, com o Appium, em aplicativos nativos de celular.

O Playwright é gratuito?

Sim. É de código aberto e não tem versão paga.

Como instalar o Playwright?

Com o Node.js instalado, rode npm init playwright@latest numa pasta vazia. Para Python, a instalação é pelo pip, com pip install playwright e depois playwright install.

Você já automatiza testes? Usa Playwright, Selenium ou Cypress? Conta aqui nos comentários.

Para acompanhar esta e outras notícias de tecnologia, inscreva-se na newsletter do TechDescomplicado. É grátis, e as análises chegam direto no seu e-mail.

Resumo

  • O Playwright é uma ferramenta gratuita da Microsoft (2020) que controla o navegador para testes automatizados.
  • Testa Chromium, Firefox e WebKit, simula celulares e aceita TypeScript, JavaScript, Python, Java e C#.
  • No TechDescomplicado: 108 testes, computador e Pixel 7; rodada de 8/10 com 98 aprovados e 0 falhas em menos de 1 minuto.
  • 12 testes do visual estavam presos a uma prévia: o buraco de cobertura foi corrigido na mesma noite.
  • Para começar: npm init playwright@latest e o codegen para gravar os primeiros testes.
  • Nota do Carlinhos, que usa o Playwright no trabalho todos os dias: 10/10.

Fontes

Inscrever-se
Notificar de
guest
0 Comentários
mais antigos
mais recentes Mais votado
Rolar para cima