Guia do Playwright vs. Selenium

Saiba mais sobre o Playwright e o Selenium, analise as ferramentas com base nas funcionalidades que oferecem e na sua flexibilidade e desempenho, suporte da comunidade, suporte do navegador, configuração e facilidade de utilização.
8 min read
Playwright vs selenium

Se você pretende raspar dados de sítios web dinâmicos que utilizam JavaScript, uma recomendação popular é utilizar uma ferramenta de automatização do navegador. Estas ferramentas permitem-lhe operar um navegador utilizando código e raspar as informações que aparecem nesse navegador.

Há uma variedade de ferramentas de automação de navegador para escolher, como Puppeteer, Selenium e Playwright. Este artigo se centrará no Playwright e no Selenium e analisará as ferramentas com base nas funcionalidades que oferecem e na sua flexibilidade e desempenho, no suporte da comunidade, no suporte do navegador, na configuração e na facilidade de utilização.

Configuração e facilidade de utilização  

Tanto o Playwright como o Selenium suportam várias linguagens de programação, incluindo Java, Python e JavaScript, através de ligações: implementações específicas da linguagem que utilizam a mesma API. Para começar a utilizar o Playwright ou o Selenium, é necessário descarregar a biblioteca de ligação para a sua linguagem.

Por exemplo, se estiver a utilizar Python, precisa de descarregar e instalar a biblioteca pytest-playwright ou, se estiver a utilizar Selenium, a biblioteca selenium.

No entanto, a instalação do Selenium tem um passo adicional: é necessário descarregar um WebDriver para o navegador que utiliza. Por exemplo, se quiser fazer raspagem com o Chrome, precisa de descarregar o ChromeDriver. Em contrapartida, o Playwright tem um controlador e descarrega os binários necessários para todos os navegadores suportados, executando o comando playwright install.  

Depois de tudo estar configurado, ambas as bibliotecas funcionam de forma muito semelhante e devem ser fáceis de navegar se tiver experiência prévia com a raspagem da web. No entanto, se for um principiante, o Playwright oferece uma API mais concisa e poderosas capacidades de depuração que o ajudam a criar os seus primeiros scripts sem problemas. Para além disso, a documentação do Playwright é mais moderna e mais adequada para principiantes.

Em resumo, tanto o Selenium como o Playwright são fáceis de utilizar; no entanto, a experiência com o Playwright é mais simples e menos suscetível a confusões desnecessárias.

Características oferecidas  

Tanto o Playwright como o Selenium oferecem todas as funcionalidades básicas necessárias para a localização de elementos. É possível localizar elementos utilizando seletores CSS ou XPath:


# Playwright 
heading = page.locator('h1')
accept_button = page.locator('//button[text()="Accept"]')

# Selenium 
heading = driver.find_element(By.CSS_SELECTOR, 'h1')
accept_button = driver.find_element(By.XPATH, '//button[text()="Accept"]')

O Playwright oferece localizadores adicionais que lhe permitem consultar propriedades como texto, marcador de posição, título e função. Estas permitem aos programadores escrever funções de localização mais claras e são úteis para os principiantes que ainda não sabem como obter estes localizadores utilizando seletores:

accept_button = page.get_by_text("Accept")

Quando se faz raspagem de aplicações web, é importante acertar o momento das ações. É necessário certificar-se de que não executa ações em elementos que ainda não apareceram e também que não espera muito tempo pelo carregamento dos elementos.

Para o conseguir, o Selenium utiliza instruções de espera explícitas. Por exemplo, pode dar instruções ao script para esperar que o elemento seja carregado na página:

el = WebDriverWait(driver, timeout=3).until(lambda x: x.find_element(By.TAG_NAME,"button"))
el.click()

Em comparação, as esperas do Playwright são um pouco mais simples. Antes de realizar ações em elementos, o Playwright executa automaticamente uma série de verificações de acionabilidade. Isto significa que não é possível tentar clicar num elemento que ainda não esteja visível:

page.get_by_role("button").click()

Ambas as ferramentas têm também várias características notáveis de qualidade de vida para a depuração e geração de código. Por exemplo, o Playwright Inspector permite-lhe percorrer os scripts e ver onde correm mal: já não é necessário repetir o mesmo script um milhão de vezes seguidas!

E se quiser criar os seus scripts sem procurar seletores em HTML, o Playwright tem a opção de os gravar com o gerador de código. Este gerador regista as ações que você realiza e fornece o código para as executar. Isto faz com que seja uma das melhores formas de os principiantes se familiarizarem com a biblioteca.

Embora o código criado pelo gerador de código não seja útil para a raspagem de informações devido à especificidade dos seletores, os especialistas podem considerá-lo útil para gerar ações de configuração que ocorrem antes da raspagem, como iniciar sessão numa conta ou navegar para a página correta.

O Selenium também tem uma ferramenta de reprodução e gravação chamada Selenium IDE, disponível como uma extensão do navegador para Chrome e Firefox. O Selenium IDE funciona como uma ferramenta de reprodução e gravação, permitindo a gravação de scripts de Selenium diretamente no ambiente do navegador. Esta ferramenta reúne as capacidades do Playwright Inspector e do gerador de código num pacote simples e fácil de utilizar.

Flexibilidade e desempenho  

Como já foi referido, o Playwright e o Selenium são suportados por um grande número de linguagens. O Playwright suporta oficialmente JavaScript/TypeScript, Java, Python e C#. E o Selenium suporta oficialmente Java, C#, Python, JavaScript, Ruby e Kotlin.

Para além das linguagens oficialmente suportadas, as linguagens podem ter bibliotecas de ligação não oficiais que podem ser utilizadas para o mesmo efeito. Entre estes, o Selenium é a escolha mais popular, tendo a maioria das linguagens de programação pelo menos uma biblioteca de ligação. Isto significa que, se optar por trabalhar com o Selenium, poderá eventualmente utilizá-lo para fazer raspagem em praticamente qualquer linguagem de programação que encontrar.

De acordo com a maioria das referências, o Playwright é visivelmente mais rápido do que o Selenium. Uma vez que ambos utilizam um verdadeiro navegador web (embora normalmente sem renderização da GUI para poupar recursos), existe um limite para a eficiência das ferramentas. No entanto, os programadores do Playwright implementaram muitas otimizações que tornam a execução de scripts mais rápida e mais fácil de paralelizar.

Atualmente, ambas as ferramentas suportam contextos, que são semelhantes ao modo de navegação anónima no navegador: permite-lhe executar várias sessões independentes num navegador, o que poupa nos custos de arranque do navegador ao executar scripts isoladamente. No entanto, a implementação de contextos do Playwright traz mais benefícios de desempenho do que a do Selenium, porque é possível executar vários contextos em paralelo, o que acelera ainda mais a raspagem.

Apoio comunitário  

O Selenium e o Playwright têm ambos um excelente apoio da comunidade e são utilizados por muitos especialistas em raspagem da web, o que torna fácil encontrar um tutorial sobre qualquer assunto.

Como o Selenium é mais antigo do que o Playwright, teve mais tempo para acumular um conjunto de documentação e tutoriais que cobrem a sua vasta gama de funcionalidades. Independentemente da funcionalidade que pretenda utilizar, é muito provável que esteja amplamente documentada pela equipa de desenvolvimento e pela comunidade. Além disso, se alguma vez precisar de ajuda para utilizar o Selenium, existem muitos sítios onde pode obter respostas às suas perguntas.

Em comparação, o Playwright teve menos tempo para criar uma coleção de materiais, mas compensa-o com programadores da Microsoft dedicados a trabalhar no Playwright, que apresentam e explicam as novas funcionalidades que a equipa desenvolve e traz para a mesa. A sua documentação é indiscutivelmente mais limpa e moderna, o que facilita a sua utilização por parte dos principiantes.

Para obter dicas e tutoriais sobre como utilizar o Playwright, pode recorrer ao blogue oficial e ao canal do YouTube. E se quiser juntar-se à comunidade Playwright, a equipa tem um canal de Discord da comunidade.

Conclusão  

Quando se compara o Playwright e o Selenium, o Playwright é definitivamente a ferramenta mais brilhante com muitas funcionalidades novas e interessantes, enquanto o Selenium é a ferramenta estável que tem um bom desempenho e é mais do que suficiente para os especialistas. Se está a iniciar-se na raspagem da web, o Playwright é melhor devido ao apoio que oferece aos principiantes.  

Se escolher Playwright ou Selenium para raspagem da web, os proxies de Bright Data podem ser facilmente integrados com qualquer ferramenta de automação do navegador. Siga o nosso guia passo a passo para a Integração de Proxy em Playwright e a Integração de Proxy em Selenium. Junte-se à maior rede de proxy e obtenha um teste gratuito.