Guide Playwright vs. Selenium

Cet article se concentrera sur Playwright et Selenium et passera en revue les outils basés sur les fonctionnalités qu’ils offrent, leur flexibilité et leurs performances, l’assistance fournie à leur sujet par la communauté des développeurs, leur prise en charge des différents navigateurs, leur configuration et leur facilité d’utilisation.
9 min de lecture
Playwright vs selenium

Si vous voulez collecter des données sur des sites web dynamiques qui utilisent JavaScript, l’utilisation d’un outil d’automatisation de navigateur est une option souvent conseillée. Ces outils vous permettent de faire fonctionner un navigateur à l’aide d’un programme et d’extraire les informations qui s’affichent dans ce navigateur.

Vous pouvez opter pour différents outils d’automatisation de navigateur, tels que Puppeteer, Selenium et Playwright. Cet article se concentrera sur Playwright et Selenium et passera en revue les outils basés sur les fonctionnalités qu’ils offrent, leur flexibilité et leurs performances, l’assistance fournie à leur sujet par la communauté des développeurs, leur prise en charge des différents navigateurs, leur configuration et leur facilité d’utilisation.

Configuration et facilité d’utilisation  

Playwright et Selenium prennent tous deux en charge différents langages de programmation, notamment Java, Python et JavaScript, par le biais de liaisons – c’est-à-dire d’implémentations spécifiques au langage qui utilisent la même API. Pour commencer à utiliser Playwright ou Selenium, vous devez télécharger la bibliothèque de liaison dédiée à votre langage.

Par exemple, si vous utilisez Python, vous devez télécharger et installer la bibliothèque pytest-drawright ; lorsque vous utilisez Selenium, vous devez télécharger et installer la bibliothèque Selenium.

Cependant, l’installation de Selenium comporte une étape supplémentaire : vous devez télécharger un WebDriver pour le navigateur que vous utilisez. Par exemple, si vous souhaitez faire du web scraping avec Chrome, vous devez télécharger ChromeDriver. En revanche, Playwright a un seul pilote et télécharge les fichiers binaires nécessaires pour tous les navigateurs pris en charge en exécutant la commande playwright install.

Une fois que tout est mis en place, les deux bibliothèques se comportent de manière très similaires et devraient être faciles à utiliser si vous avez une expérience antérieure du web scraping. Cependant, si vous êtes novice, Playwright offre une API plus concise et des capacités de débogage puissantes qui vous aident à créer vos premiers scripts sans rencontrer de problèmes. En outre, la documentation de Playwright est plus moderne et mieux adaptée aux novices.

En résumé, Selenium et le Playwright sont faciles à mettre en route ; cependant, l’expérience utilisateur est plus fluide et plus claire sur Playwright.

Fonctionnalités offertes  

Playwright et Selenium offrent toutes les fonctionnalités de base nécessaires pour localiser des éléments. Vous pouvez localiser des éléments à l’aide de sélecteurs 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"]')

Playwright propose des localisateurs supplémentaires qui vous permettent d’interroger des propriétés telles que text, placeholder, title et role. Ces derniers permettent aux développeurs d’écrire des fonctions de localisation plus claires et sont d’un grand secours pour les novices qui ne savent pas encore créer ces localisateurs à l’aide de sélecteurs :

accept_button = page.get_by_text("Accept")

Lorsque vous faites du web scraping sur des applications web, il est important d’agir avec le bon timing. Vous devez vous assurer que vous n’exécutez pas d’actions sur des éléments qui ne sont pas encore apparus, et que vous n’attendez pas trop longtemps que des éléments se chargent.

Pour ce faire, Selenium utilise des instructions d’attente explicites. Par exemple, il est possible de demander au script d’attendre le chargement de l’élément considéré sur la page :

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

Par comparaison, les attentes de Playwright sont un peu plus simples. Avant d’effectuer des actions sur des éléments, Playwright exécute automatiquement une série de vérifications d’actionnabilité. Cela signifie qu’il n’est pas possible de cliquer sur un élément qui n’est pas encore visible :

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

Ces deux outils disposent également de diverses fonctionnalités très pratiques pour le débogage et la génération de code. Par exemple, Playwright Inspector vous permet de parcourir des scripts et de voir où ils posent problème. Plus besoin de réexécuter le même script un million de fois !

Et si vous voulez créer vos scripts sans rechercher de sélecteurs en HTML, Playwright a la possibilité de les enregistrer avec son générateur de code. Ce générateur enregistre les actions que vous effectuez et vous fournit le code permettant de les exécuter. Cela en fait un excellent outil pour aider les novices à se familiariser avec la bibliothèque.

Bien que le code créé par le générateur de code ne puisse pas vous servir pour extraire des informations, du fait de la spécificité des sélecteurs, des spécialistes peuvent en tirer parti pour générer des actions de configuration effectuées avant la tâche de scraping proprement dite, comme la connexion à un compte ou la navigation vers la page cible.

Selenium dispose également d’un outil de lecture et d’enregistrement appelé Selenium IDE, disponible en tant qu’extension de navigateur pour Chrome et Firefox. Sélénium IDE sert d’outil de lecture et d’enregistrement, qui permet l’enregistrement de scripts Selenium directement dans l’environnement du navigateur. Cet outil regroupe les fonctionnalités de Playwright Inspector et du générateur de code dans un package simple et facile à utiliser.

Flexibilité et performances  

Comme nous le disions à l’instant, Playwright et Selenium sont pris en charge par un grand nombre de langages. Playwright prend officiellement en charge JavaScript/TypeScript, Java, Python et C#. Et Selenium prend officiellement en charge Java, C#, Python, JavaScript, Ruby et Kotlin.

En plus des langages officiellement pris en charge, certains langages peuvent avoir des bibliothèques de liaison non officielles qui peuvent être utilisées de la même manière. Parmi ces dernières, Selenium est le choix le plus populaire, car la plupart des langages de programmation ont au moins une bibliothèque de liaison avec Selenium. Cela signifie qu’au final, si vous choisissez de travailler avec Selenium, vous pouvez l’utiliser pour faire du web scraping dans pratiquement n’importe quel langage de programmation que vous rencontrerez.

Sur bon nombre de plans, Playwright est sensiblement plus rapide que Selenium. Ces outils étant tous les deux utilisés pour piloter un navigateur web réel (quoique généralement sans interface graphique pour économiser des ressources), leur efficacité présente certaines limitations. Cependant, les développeurs de Playwright ont implémenté un certain nombre d’optimisations qui rendent l’exécution des scripts plus rapide et plus facile à paralléliser.

Actuellement, Playwright et Selenium prennent en charge des contextes, qui sont similaires au mode Incognito sur le navigateur – cela vous permet d’exécuter plusieurs sessions indépendantes sur un même navigateur, et donc de réduire les coûts de démarrage de sessions sur le navigateur, tout en exécutant des scripts distincts. Cependant, la mise en œuvre de contextes par Playwright apporte plus d’avantages en matière de performances qu’avec Selenium, car vous pouvez exécuter plusieurs contextes en parallèle, ce qui accélère encore plus vos tâches de web scraping.

Assistance dans la communauté des développeurs  

Selenium et Playwright bénéficient tous les deux d’une excellente assistance dans la communauté des développeurs et sont utilisés par de nombreux spécialistes du web scraping, ce qui facilite la recherche d’un tutoriel sur n’importe quel sujet.

Selenium étant plus ancien que le Playwright, la documentation et les tutoriels couvrant sa vaste panoplie de fonctionnalités sont plus fournis. Quelle que soit la fonctionnalité que vous souhaitez utiliser, elle est probablement largement documentée par l’équipe de développeurs et la communauté. En outre, si vous avez besoin d’aide au sujet de Selenium, il existent un certain nombre de sites où vous pourrez trouver des réponses à vos questions.

En comparaison, Playwright n’a pas encore pu bénéficier, faute de temps, d’une collection de documents aussi fournie, mais il compense cela par le fait que certains développeurs dédiés de Microsoft, qui travaillent chez Playwright, présentent et expliquent les nouvelles fonctionnalités que l’équipe développe et fournit aux utilisateurs. Sa documentation est sans doute plus propre et plus moderne, ce qui rend Playwright plus facile à utiliser pour les novices.

Pour obtenir des conseils et consulter des tutoriels sur l’utilisation de Playwright, vous pouvez vous tourner vers son blog officiel et sa chaîne YouTube. Et si vous voulez rejoindre la communauté Playwright, l’équipe a un canal Discord communautaire.

Conclusion  

Quand vous comparez Playwright et Selenium, Playwright est certainement l’outil le plus attrayant, avec beaucoup de nouvelles fonctionnalités intéressantes, tandis que Selenium est l’outil stable qui fonctionne bien et convient largement aux spécialistes. Si vous êtes un novice du le web scraping, Playwright est préférable car il propose une meilleure assistance pour les débutants.  

Que vous fassiez du web scraping avec Playwright ou Selenium, les proxys de Bright Data peuvent être facilement intégrés à ces outils d’automatisation de navigateur. Suivez notre guide étape par étape pour l’intégration des proxys avec Playwright et l’intégration des proxys avec Selenium. Rejoignez le plus grand réseau de proxys au monde avec un essai gratuit.