Playwright é uma estrutura para testes e automação da Web. Permite testar Chromium, Firefox e WebKit com uma única API. O Playwright foi desenvolvido para permitir a automação da Web em vários navegadores que seja sempre ecológica , eficiente , confiável e rápida .
Linux | macOS | Windows | |
---|---|---|---|
Cromo 131.0.6778.33 | ✅ | ✅ | ✅ |
Web Kit 18.0 | ✅ | ✅ | ✅ |
Firefox 132.0 | ✅ | ✅ | ✅ |
A execução headless é suportada por todos os navegadores em todas as plataformas. Confira os requisitos do sistema para obter detalhes.
Procurando Dramaturgo para Python, .NET ou Java?
O Playwright tem seu próprio executor de testes para testes ponta a ponta, nós o chamamos de Teste do Playwright.
A maneira mais fácil de começar com o Playwright Test é executar o comando init.
# Run from your project's root directory
npm init playwright@latest
# Or create a new project
npm init playwright@latest new-project
Isso criará um arquivo de configuração, opcionalmente adicionará exemplos, um fluxo de trabalho GitHub Action e um primeiro teste example.spec.ts. Agora você pode ir diretamente para a seção de escrita de asserções.
Adicione dependência e instale navegadores.
npm i -D @playwright/test
# install supported browsers
npx playwright install
Opcionalmente, você pode instalar apenas navegadores selecionados; consulte instalar navegadores para obter mais detalhes. Ou você pode não instalar nenhum navegador e usar canais de navegador existentes.
Espera automática . O dramaturgo espera que os elementos sejam acionáveis antes de executar ações. Ele também possui um rico conjunto de eventos de introspecção. A combinação dos dois elimina a necessidade de intervalos artificiais – uma das principais causas de testes instáveis.
Afirmações que priorizam a Web . As afirmações do dramaturgo são criadas especificamente para a web dinâmica. As verificações são repetidas automaticamente até que as condições necessárias sejam atendidas.
Rastreamento . Configure a estratégia de repetição de teste, capture rastreamento de execução, vídeos e capturas de tela para eliminar falhas.
Os navegadores executam conteúdo da web pertencente a diferentes origens em diferentes processos. O Playwright está alinhado com a arquitetura dos navegadores modernos e executa testes fora do processo. Isso torna o Playwright livre das limitações típicas do executor de testes em processo.
Múltiplo tudo . Cenários de teste que abrangem diversas guias, diversas origens e diversos usuários. Crie cenários com contextos diferentes para usuários diferentes e execute-os no seu servidor, tudo em um único teste.
Eventos confiáveis . Passe os elementos, interaja com controles dinâmicos e produza eventos confiáveis. O Playwright usa um pipeline de entrada de navegador real, indistinguível do usuário real.
Quadros de teste, perfure Shadow DOM. Os seletores Playwright perfuram o shadow DOM e permitem a inserção de quadros perfeitamente.
Contextos do navegador . O Playwright cria um contexto de navegador para cada teste. O contexto do navegador é equivalente a um novo perfil de navegador. Isso oferece isolamento total de teste sem sobrecarga. Criar um novo contexto de navegador leva apenas alguns milissegundos.
Faça login uma vez . Salve o estado de autenticação do contexto e reutilize-o em todos os testes. Isso evita operações repetitivas de login em cada teste e ainda oferece isolamento total de testes independentes.
Códigogen . Gere testes registrando suas ações. Salve-os em qualquer idioma.
Inspetor dramaturgo . Inspecione a página, gere seletores, percorra a execução do teste, veja os pontos de clique e explore os logs de execução.
Visualizador de rastreamento . Capture todas as informações para investigar a falha do teste. O rastreamento do Playwright contém screencast de execução de teste, instantâneos de DOM ao vivo, explorador de ações, fonte de teste e muito mais.
Procurando Playwright para TypeScript, JavaScript, Python, .NET ou Java?
Para aprender como executar esses exemplos de teste do Playwright, confira nossos documentos de primeiros passos.
Este trecho de código navega até a página inicial do Playwright e salva uma captura de tela.
import { test } from '@playwright/test' ;
test ( 'Page Screenshot' , async ( { page } ) => {
await page . goto ( 'https://playwright.dev/' ) ;
await page . screenshot ( { path : `example.png` } ) ;
} ) ;
Este snippet emula o Mobile Safari em um dispositivo em determinada geolocalização, navega até maps.google.com, executa a ação e faz uma captura de tela.
import { test , devices } from '@playwright/test' ;
test . use ( {
... devices [ 'iPhone 13 Pro' ] ,
locale : 'en-US' ,
geolocation : { longitude : 12.492507 , latitude : 41.889938 } ,
permissions : [ 'geolocation' ] ,
} )
test ( 'Mobile and geolocation' , async ( { page } ) => {
await page . goto ( 'https://maps.google.com' ) ;
await page . getByText ( 'Your location' ) . click ( ) ;
await page . waitForRequest ( / .*preview/pwa / ) ;
await page . screenshot ( { path : 'colosseum-iphone.png' } ) ;
} ) ;
Este snippet de código navega para example.com e executa um script no contexto da página.
import { test } from '@playwright/test' ;
test ( 'Evaluate in browser context' , async ( { page } ) => {
await page . goto ( 'https://www.example.com/' ) ;
const dimensions = await page . evaluate ( ( ) => {
return {
width : document . documentElement . clientWidth ,
height : document . documentElement . clientHeight ,
deviceScaleFactor : window . devicePixelRatio
}
} ) ;
console . log ( dimensions ) ;
} ) ;
Este snippet de código configura o roteamento de solicitações para uma página registrar todas as solicitações de rede.
import { test } from '@playwright/test' ;
test ( 'Intercept network requests' , async ( { page } ) => {
// Log and continue all network requests
await page . route ( '**' , route => {
console . log ( route . request ( ) . url ( ) ) ;
route . continue ( ) ;
} ) ;
await page . goto ( 'http://todomvc.com' ) ;
} ) ;