Adivinha? A Microsoft acaba de lançar uma nova versão doPlaywright como um relógio! Manter-se atualizado com correções de bugs e alterações de API pode parecer um trabalho de tempo integral, e perder recursos interessantes é muito fácil. Mas não se preocupe; nós protegemos você!
Junte-se a nós em uma jornada pelas últimas atualizações do Playwright. Estamos aqui para ajudá-lo a ficar por dentro, aprender alguns truques novos e impressionar seus colegas com suas habilidades estelares! Pronto para mergulhar? Vamos!
Se você está ansioso para ver em primeira mão as atualizações mais recentes do Playwright por meio de alguns exemplos incríveis, acesse o canal do Playwright no YouTube e assista ao vídeo mensal “O que há de novo no Playwright”:
É hora de explorar os recursos mais recentes introduzidos no Playwright e ver como aproveitá-los ao máximo 🔍
FirefoxUserPrefs
adicionado ao argumento do objeto options
de browserType.launchPersistentContext(userDataDir, options)
. Esse método inicia um navegador usando armazenamento persistente localizado em userDataDir
e retorna a instância do contexto do navegador. firefoxUserPrefs
`é um objeto que contém as preferências do usuário do Firefox conforme especificado em about:config
.reason
adicionado ao argumento do objeto options
dos métodos page.close(options)
, browserContext.close(options)
e browser.close(options)
. reason
é uma string contendo a mensagem de erro relatada por todas as operações interrompidas como resultado de uma chamada close()
.
Embora firefoxUserPrefs
atenda especificamente aos usuários do Firefox que precisam de configurações personalizadas, o campo de reason
tem um propósito muito mais geral. Use-o como no trecho abaixo:
await browser.close({ reason: "Scraping process completed!" })
Todas as operações pendentes interrompidas por browser.close()
agora gerarão um erro de JavaScript com a mensagem “Processo de raspagem concluído!”
Como usar esse recurso? Imagine que sua página de destino está no meio de uma tarefa crítica – digamos, aguardando a recuperação de alguns dados. De repente, um erro inesperado aparece e você se depara com a necessidade de fechar o navegador normalmente.
Sem reason
, você não saberia se os recursos para a tarefa em andamento foram liberados e por que a operação foi interrompida. Não saber o que está acontecendo é ruim, especialmente quando você tem a tarefa de inspecionar o motivo de um erro nos logs de um script automatizado de web scraping. É aí que o campo da “razão” vem em seu socorro, poupando dias de investigação meticulosa.
Incrível, esta introdução à API torna a depuração muito mais fácil! 🚀
A ferramenta Playwright Test Generator , projetada para criar testes automaticamente conforme você executa ações em um navegador, agora fornece os seguintes botões:
expect(locator).toBeVisible()
.expect(locator).toContainText()
expect(locator).toHaveValue()
ao seu teste.
Imagine isto : você está trabalhando em uma tarefa complexa, como construir um web scraper para uma página web dinâmica . Suponha que você precise garantir que alguns elementos da página estejam visíveis e contenham textos ou valores específicos. Isso envolveria alguma lógica complexa 👎. Mas espere, graças a esta nova atualização, tudo se resume a alguns cliques na ferramenta Test Generator!
Veja esse novo recurso em ação no seguinte GIF:
Essa interação do Test Generator produzirá o seguinte teste TypeScript para você:
import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await expect(page.getByRole('banner')).toContainText('Get started'); });
✨ Bem mágico, não é? ✨
Seguindo a grande tradição das principais atualizações do Playwright, a linha de navegadores suportados foi atualizada com versões mais recentes:
Mas isso não é tudo! A versão atual do Playwright também se mostrou excelente contra os seguintes canais estáveis:
Google Chrome 119
Microsoft Edge 119
Os métodos download.path()
e download.createReadStream()
agora geram um erro quando a operação de download falha ou é cancelada.
A imagem do Docker Playwright agora vem com o Node.js v20.
Não quer perder nenhuma nova atualização? Fique de olho na página Notas de lançamento do Playwright!
Agora, você deve estar pensando: “Como posso colocar as mãos nessas novas adições fantásticas?” Bem, atualizando o Playwright para a versão mais recente, meu amigo!
Basta iniciar o comando abaixo:
npm install @playwright/test@latest
E esqueça de atualizar as instâncias do navegador com:
npx playwright install
Voilà! Você está pronto para obter as últimas atualizações do Playwright!
Não importa quão atualizada esteja sua versão do Playwright, a maioria dos sites ainda será capaz de detectar e bloquear seus scripts automatizados. Mas como isso é possível? Bem, navegadores sem cabeça controlados por bibliotecas como o Playwright envolvem configurações e ajustes especiais que são vistos como sinais de alerta por soluções anti-bot. A consequência? Bloqueios imediatos ou aparecimento indesejado de CAPTCHA e outros obstáculos incômodos .
Agora, você pode estar pensando: “Não posso simplesmente ajustar as configurações do meu navegador para evitar isso?”
Não tão rápido, garoto! Essa não é uma boa ideia por pelo menos três razões convincentes:
O problema não é com a biblioteca de automação do navegador em si (o Playwright é demais! 🤘), mas sim com o navegador sob controle. A solução seria um navegador altamente personalizável que:
Acredite ou não, isso não é uma miragem distante. Isso é real e é exatamente disso que se trata a solução Scraping Browser da Bright Data !
Playwright é a estrela do rock das bibliotecas de automação de navegadores e, assim como o Papai Noel entrega presentes na véspera de Natal, a Microsoft lança uma atualização importante todos os meses. Aqui, você viu como aproveitar ao máximo as atualizações mais recentes do Playwright, mas, convenhamos, elas não o tornarão magicamente invisível para sites com tecnologias avançadas de detecção de bots.
Evite essa bala com a solução Scraping Browser da Bright Data e junte-se à nossa missão de tornar a Internet um local público para todos, em qualquer lugar, mesmo por meio de scripts automatizados!
Até a próxima, continue explorando a Web com liberdade!