Você conhece o Playwright? Aprenda a automatizar qualquer coisa na Web!
Você vai conhecer o Playwright e aprender a usar ele com Python para automatizar diversas tarefas. Passo a passo, vamos da instalação até a construção dos códigos, tudo explicado de forma simples e clara!
O Playwright é uma ferramenta que automatiza tarefas na internet, como preencher formulários, clicar em botões, navegar por páginas e extrair informações de sites de forma prática e eficiente.
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O Playwright é uma ferramenta de automação de navegador que controla Chrome, Firefox e Safari por código. Com Python, ele automatiza tarefas na web — preencher formulários, clicar em botões, navegar entre páginas e extrair dados (web scraping). É moderno, rápido e lida bem com páginas dinâmicas que dependem de JavaScript.
O que é o Playwright e para que ele serve?
O Playwright é uma biblioteca de automação web que permite controlar navegadores como Chrome, Firefox, Safari e Microsoft Edge para executar tarefas automaticamente.
Diferente de outras ferramentas, como o Selenium, o Playwright oferece funcionalidades nativas que simplificam a automação, como esperar elementos carregarem na tela ou gerar códigos automaticamente.
Por que usar o Playwright?
- Eficiência: Ele gerencia automaticamente ações como esperar um botão aparecer, evitando a necessidade de verificações manuais.
- Multi-navegadores: Funciona com diversos navegadores sem a necessidade de instalações adicionais.
- Geração de código: Possui uma ferramenta (Codegen) que cria scripts automaticamente ao interagir com sites.
- Flexibilidade: Permite automatizar desde buscas no Google até sistemas internos de empresas, desde que rodem no navegador.
Como instalar o Playwright?
É muito simples. Para instalar, siga estes dois passos usando Python:
Instale a biblioteca:
No terminal, execute o comando:
pip install playwright
Isso vai instalar a biblioteca Playwright no seu ambiente Python.
Instale as engines dos navegadores:
Após a instalação, rode:
playwright install
Esse comando baixa as extensões necessárias para que o Playwright controle navegadores como Chrome (padrão), Firefox e outros.
Tabela: Comandos de Instalação do Playwright
| Comando | Descrição |
|---|---|
pip install playwright | Instala a biblioteca Playwright no Python. |
playwright install | Instala as engines dos navegadores suportados. |
Como abrir um navegador com o Playwright?
O Playwright permite fazer isso de forma simples, com a opção de executá-lo em modo visual (com interface gráfica) ou headless (sem interface, mais rápido).
Exemplo de código para abrir o navegador:
from playwright.sync_api import sync_playwright
import time
with sync_playwright() as pw:
navegador = pw.chromium.launch(headless=False) # Abre o Chrome em modo visual
pagina = navegador.new_page() # Cria uma nova página
time.sleep(4) # Aguarda 4 segundos para visualização (opcional)
navegador.close() # Fecha o navegadorDica: O parâmetro headless=False faz o navegador aparecer na tela, ideal para testes. Para automações em produção, use headless=True para maior desempenho.
Como navegar para uma página específica?
Para navegar até um site, usamos o método .goto(). É essencial incluir o protocolo https:// no URL para garantir que o Playwright acesse a página corretamente.
Exemplo de navegação:
pagina.goto("https://www.hashtagtreinamentos.com")O que acontece?
- O Playwright carrega a página e espera automaticamente que ela esteja pronta antes de executar o próximo comando.
- Você pode usar
.go_back()para voltar à página anterior ou.go_forward()para avançar.
Como extrair informações de uma página?
O Playwright permite extrair dados, como o título de uma página, com comandos simples. Por exemplo, para obter o título:
titulo = pagina.title()
print(titulo)Isso retorna o texto que aparece na aba do navegador, como “Hashtag Treinamentos - Cursos Excel, VBA, Python”.
Por que isso é útil?
- Extrair títulos, textos ou outros dados é essencial para validar se a automação está na página correta ou para coletar informações específicas.
A técnica de extrair dados de sites automaticamente é chamada web scraping. Se quiser aprender mais sobre isso, temos um post que ensina a extrair grande volumes de dados de sites..
Como localizar e interagir com elementos na página?
Localizar elementos nas páginas, como botões ou campos de formulário, é uma tarefa central na automação web. O Playwright oferece métodos como .locator() e .get_by_role() para isso.
Por que evitar XPath?
- XPath é frágil, pois depende da estrutura exata do HTML, que pode mudar com atualizações no site.
- O Playwright recomenda usar métodos como
.get_by_role()ou.get_by_text(), que são mais robustos.
Exemplo: Clicando em um botão:
botao = pagina.get_by_role("link", name="Quero aprender")
botao.click()Como o Playwright ajuda?
- Ele espera automaticamente que o elemento esteja visível e clicável antes de executar a ação.
- Use o Codegen para gerar esses comandos automaticamente:
playwright codegen https://www.hashtagtreinamentos.comIsso abre o site e uma janela que gera o código enquanto você interage com a página.
Como preencher formulários automaticamente?
Preencher formulários é uma das automações mais comuns. O método .fill() permite inserir texto em campos de texto.
Exemplo: Preenchendo um formulário:
pagina.goto("https://www.hashtagtreinamentos.com/curso-python")
pagina.get_by_role("textbox", name="Seu primeiro nome").fill("João")
pagina.get_by_role("textbox", name="Seu e-mail").fill("python@teste.com")
pagina.get_by_role("button", name="Acessar informações").click()O que o Playwright faz automaticamente?
- Garante que o campo esteja visível e pronto para receber texto.
- Executa cliques e preenchimentos sem a necessidade de comandos manuais adicionais.
Como gerenciar múltiplas abas?
Quando uma ação, como clicar em um botão, abre uma nova aba, o Playwright usa contextos para gerenciá-las. Um contexto permite controlar várias páginas simultaneamente.
Exemplo: Gerenciando uma nova aba:
contexto = navegador.new_context()
pagina = contexto.new_page()
pagina.goto("https://www.hashtagtreinamentos.com")
botao = pagina.get_by_role("link", name="Quero aprender")
with contexto.expect_page() as nova_pagina_info:
botao.click()
pagina2 = nova_pagina_info.value
pagina2.goto("https://www.hashtagtreinamentos.com/curso-python")Por que usar contextos?
- Permitem gerenciar múltiplas abas sem precisar alternar manualmente entre elas.
- Cada página pode ser controlada independentemente, ao contrário do Selenium, que exige selecionar a aba ativa.
Como esperar elementos carregarem?
O Playwright espera automaticamente que elementos estejam visíveis antes de interagir com eles. Porém, você pode usar o método expect() para esperar explicitamente por uma condição.
Exemplo: Esperando um botão aparecer:
from playwright.sync_api import expect
botao = pagina2.get_by_role("link", name="Quero garantir uma vaga")
expect(botao).to_be_visible()
botao.click()Quando usar expect()?
- Útil quando você precisa garantir que um elemento específico esteja visível ou habilitado antes de prosseguir.
- Evita erros em páginas que demoram a carregar.
Como selecionar múltiplos elementos?
Para interagir com vários elementos, como todos os links de uma página, use o método .all().
Exemplo: Listando todos os links:
links = pagina.get_by_role("link").all()
for link in links:
print(link.text_content())Quando isso é útil?
- Ideal para coletar dados de listas, como todos os botões ou links em um menu.
Dicas para usar o Playwright de forma eficiente
- Use o Codegen: Ele simplifica a criação de scripts ao gerar códigos automaticamente enquanto você interage com o site.
- Evite esperas manuais: O Playwright gerencia tempos de espera automaticamente, então evite usar
time.sleep()em produções. - Teste em modo visual: Durante o desenvolvimento, use headless=False para visualizar o que está acontecendo.
- Consulte a documentação: Acesse a documentação oficial do Playwright para exemplos detalhados.
Tabela: Comparação entre Playwright e Selenium
| Funcionalidade | Playwright | Selenium |
|---|---|---|
| Suporte a navegadores | Chrome, Firefox, Safari, Edge | Chrome, Firefox, Safari, Edge |
| Espera automática | Sim, nativa | Requer configurações manuais |
| Geração de código | Codegen integrado | Não possui |
| Gerenciamento de abas | Contextos simplificados | Seleção manual de abas |
Perguntas frequentes sobre o Playwright
1. O que é o Playwright?
É uma biblioteca de automação de navegadores criada pela Microsoft. Ela controla Chrome, Firefox e WebKit (Safari) por código, permitindo automatizar testes e tarefas na web, como navegação, preenchimento de formulários e extração de dados.
2. Como instalar o Playwright com Python?
Rode pip install playwright e, em seguida, playwright install para baixar os navegadores. Depois é só importar a biblioteca no seu script e começar a automatizar.
3. Playwright ou Selenium: qual usar?
O Selenium é mais antigo e consolidado; o Playwright é mais moderno, rápido e lida melhor com páginas dinâmicas e esperas automáticas. Para novos projetos, o Playwright costuma exigir menos código e dar menos problemas de sincronização.
4. O Playwright serve para web scraping?
Sim. Por controlar um navegador real, ele consegue extrair dados até de sites que carregam conteúdo via JavaScript — algo que bibliotecas só de requisição (como requests) não fazem sozinhas. É uma ótima opção para scraping de páginas dinâmicas.
Conclusão
O Playwright é uma ferramenta inovadora e eficiente para automação web, ideal para iniciantes e profissionais. Com ele, você consegue automatizar tarefas como preenchimento de formulários, navegação em sites e extração de dados de forma simples e rápida.
Comece experimentando em sites simples, para preencher formulários ou fazer buscas automáticas, e explore o Codegen para acelerar o desenvolvimento.
Tem muito mais que você pode fazer com Python, veja diversas possibilidades no nosso blog.
Próximos passos:
- Teste a automação em um site que você usa no trabalho ou em casa.
- Consulte a documentação para aprender mais sobre métodos avançados.
- Combine o Playwright com outras bibliotecas Python, como Pandas, para processar dados extraídos
E caso prefira esse conteúdo no formato de vídeo, assista aqui embaixo ou acesse o nosso canal do YouTube!
O que você aprende neste vídeo
Resposta rápida: A aula percorre o Playwright com Python do zero: instalação, navegador visível com headless=False, navegação, localizadores (com o XPath como a forma não recomendada), várias abas por contexto, formulário e esperas. O gerador de código playwright codegen aparece como o atalho para descobrir o localizador de cada elemento.
Neste vídeo (39 min):
- 1:30 - A vantagem central do Playwright é verificar sozinho se um botão existe e está pronto para ser clicado antes de agir, sem você precisar checar isso na mão.
- 2:35 - A instalação é em dois comandos:
pip install playwrighttraz a biblioteca, eplaywright installbaixa os navegadores que ele usa por baixo dos panos. - 7:04 - Por padrão o navegador roda escondido (headless); para ver a janela abrindo, é só passar
headless=Falsena hora de abrir. - 8:22 - Cada aba vira uma variável de página independente (página um, página dois...), e dá para mandar ação para qualquer uma delas direto, sem ficar selecionando a aba ativa toda hora como no Selenium.
- 8:51 - Para navegar, usa o método
goto()da página, e o endereço tem de vir comhttpsna frente; o www é opcional. - 12:58 - Uma forma de localizar um elemento é pelo XPath, o caminho dele na página, que o próprio Playwright não recomenda: basta o site mudar o botão de lugar para ele parar de funcionar.
- 16:56 - O comando
playwright codegenseguido do site abre duas janelas, o site ao vivo e o código sendo gerado; o botão pick locator deixa clicar só no elemento que interessa, sem gerar o script inteiro da sessão. - 24:56 - Para controlar mais de uma aba ao mesmo tempo, primeiro é preciso criar um contexto a partir do navegador, e é dele que as páginas novas nascem.
- 27:19 - Para pegar a aba nova que abre depois de um clique, o recomendado é um bloco
withque espera essa página aparecer, em vez de assumir que a variável já vem pronta. - 30:53 -
.fill()(o verbo preencher, em inglês) já escreve no campo direto, sem precisar clicar nele antes. - 36:04 - Dá para pedir uma espera explícita também:
expectconsegue esperar ativamente até um elemento ficar visível antes de interagir com ele. - 38:21 - A recomendação final é usar
time.sleep()só enquanto estiver testando, para acompanhar com calma o que está acontecendo, e tirar essa pausa quando a automação estiver pronta.
Trechos do vídeo:
- Antes de um clique, o Playwright confere sozinho se o elemento está visível, estável, habilitado e pronto para receber o evento, sem você pedir nada disso.
- Um localizador pode virar o ponto de partida de outro: filtra dentro de uma parte da página e, dentro dela, filtra de novo, até sobrar só o elemento certo.
- Um localizador do Playwright não é uma lista: para percorrer num laço do Python todos os elementos que ele encontra, acrescenta-se
.all()no final. - O XPath copiado do navegador pode conter aspas duplas; por isso o instrutor passa o localizador entre aspas simples no código.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Dashboard no Power BI com Claude: Passo a Passo CompletoMonte um dashboard no Power BI com Claude: modelo, medidas DAX e visuais em HTML com efeito de vidro que respondem aos filtros. Veja o passo a passo.
- Como liderar a Geração Z: mitos, fatos e o que funcionaComo liderar a Geração Z: veja o que é mito, o que é fato e quais práticas de liderança os dados mostram que funcionam na rotina da equipe.
- Nova atualização do ChatGPT: simuladores dentro da respostaEntenda a nova atualização do ChatGPT com GPT-6 e Intelligent UI: respostas com simuladores e diagramas, quem tem acesso e 5 usos no trabalho.








