Comparaison des frameworks · 2026

Selenium vs Puppeteer

Selenium et Puppeteer résolvent des problèmes différents : l'un est la norme multi-navigateurs W3C WebDriver, l'autre est une bibliothèque d'automatisation rapide axée sur Chrome. Ce guide les compare directement sur le protocole, les langages, la couverture des navigateurs, la vitesse et les cas d'usage, avec des exemples de code et une conclusion exploitable en cinq minutes.

Navigateurs et appareils
6100+
Parallélisme du cloud
100×
SLA de disponibilité
99.99%

Aimé par ces entreprises

Réponse en 30 secondes

Lequel choisir ?

Selenium Choisissez Selenium si…

Vous avez besoin de véritables tests multi-navigateurs sur Chrome, Firefox, Safari, Edge et Internet Explorer, de plus d'un langage, ou de véritables appareils mobiles via Appium, sur un protocole conforme à la norme W3C.

Puppeteer Choisissez Puppeteer si…

Vous automatisez Chrome ou Chromium depuis Node.js pour des tests de bout en bout rapides, du scraping, de la génération de PDF ou du traçage des performances, et vous n'avez pas besoin de Safari, d'Internet Explorer ni d'autres langages.

Choisissez les deux si…

Vous utilisez Puppeteer pour des vérifications rapides sur Chrome uniquement et Selenium pour une large couverture multi-navigateurs. TestingBot exécute les deux sur la même grille, en parallèle, dans un seul tableau de bord.

Arrière-plan

Que sont Selenium et Puppeteer ?

Deux outils d'automatisation de navigateur aux objectifs différents. L'un standardise le contrôle multi-navigateurs, l'autre pilote Chrome à grande vitesse.

Selenium

Selenium

Sorti en 2004 · Logiciel libre · Apache 2.0

Selenium est le framework d'automatisation de navigateur d'origine et la base de la norme WebDriver du W3C. Selenium WebDriver pilote n'importe quel navigateur depuis l'extérieur via un pilote fourni par l'éditeur (chromedriver, geckodriver, safaridriver, edgedriver) en utilisant le même protocole de communication.

Vingt ans de maturité de l'écosystème se traduisent par des liaisons pour tous les principaux langages, une intégration poussée avec les IDE, des modèles Page Object éprouvés et des tests sur de véritables appareils mobiles via Appium, qui repose sur le même protocole.

  • Java / Python / C# / Ruby / JavaScript / Kotlin
  • Norme WebDriver du W3C, fonctionne avec tous les navigateurs
  • Chrome, Firefox, Safari, Edge, IE 11 · mobile réel via Appium
Puppeteer

Puppeteer

Sorti en 2017 · Google · Apache 2.0

Puppeteer est une bibliothèque Node.js de l'équipe Google Chrome qui contrôle Chrome, Chromium et Edge via le Chrome DevTools Protocol. Elle alimente les tests de bout en bout rapides, le web scraping, la génération de PDF et le traçage des performances.

Comme il communique directement avec le protocole DevTools plutôt qu'avec WebDriver, Puppeteer est rapide et bénéficie d'un accès de premier ordre au réseau, à la console et au traçage. Cette même conception le lie aux navigateurs basés sur Chromium et à l'écosystème JavaScript.

  • JavaScript et TypeScript (Node.js)
  • Chrome DevTools Protocol, accès au réseau et au traçage
  • Chrome, Chromium, Edge · Firefox expérimental, pas de Safari/IE
Face à face

Selenium vs Puppeteer : comparaison côte à côte

À travers les dimensions qui comptent pour la sélection, la migration ou l'exécution des deux dans l'intégration continue.

Selenium versus Puppeteer feature comparison
Dimension Selenium Puppeteer
First release 2004 2017
Maintained by Open-source community + W3C Google (Chrome team)
Protocol W3C WebDriver Chrome DevTools Protocol
Languages Java, Python, C#, Ruby, JS, Kotlin JavaScript / TypeScript
Browsers Chrome, Firefox, Safari, Edge, IE 11 Chrome, Chromium, Edge
Firefox / Safari Both supported Firefox experimental, no Safari
Mobile testing Real iOS + Android via Appium None
Speed Mature, predictable Faster on Chrome (direct CDP)
Network interception BiDi (Selenium 4) or proxy First-class (CDP)
Scraping / PDF / tracing Possible First-class
Test runner Bring your own (JUnit, pytest) Bring your own (Jest, Mocha)
Standard W3C WebDriver standard Chrome-specific protocol
Parallel execution Selenium Grid Worker-based (Jest, Mocha)
Ecosystem maturity 20 years of integrations Strong since 2017
Free for open source on TestingBot

Les notes sur les fonctionnalités reflètent Selenium 4.x et Puppeteer 23.x en 2026. Les deux s'exécutent sur le cloud de TestingBot, Selenium via le hub WebDriver et Puppeteer via la connexion browserWSEndpoint.

Le même test dans les deux

Se connecter, affirmer le résultat

Un flux de connexion avec une attente explicite (Selenium) et une session via le protocole DevTools (Puppeteer). Les deux s'exécutent sur la même grille TestingBot.

Selenium + Python test_login.py
# Driver points at TestingBot remote URL
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def test_login_redirects_to_dashboard(driver):
    driver.get('https://app.example.com/login')

    driver.find_element(By.NAME, 'username').send_keys('jane@example.com')
    driver.find_element(By.NAME, 'password').send_keys('••••••••')
    driver.find_element(By.CSS_SELECTOR, 'button[type=submit]').click()

    # explicit wait
    WebDriverWait(driver, 10).until(EC.url_contains('/dashboard'))
    welcome = driver.find_element(By.TAG_NAME, 'h1')
    assert 'Welcome, Jane' in welcome.text
Puppeteer + Node.js login.test.js
// connect to TestingBot over the DevTools protocol
import puppeteer from 'puppeteer-core';

const caps = { key: 'KEY', secret: 'SECRET', browserName: 'chrome', browserVersion: 'latest' };
const browser = await puppeteer.connect({
  browserWSEndpoint: `wss://cloud.testingbot.com/puppeteer?capabilities=${encodeURIComponent(JSON.stringify(caps))}`,
});
const page = await browser.newPage();
await page.goto('https://app.example.com/login');
await page.type('#username', 'jane@example.com');
await page.type('#password', '••••••••');
await page.click('button[type=submit]');
await page.waitForSelector('h1');

Le test Selenium se connecte au hub WebDriver ; le script Puppeteer se connecte via browserWSEndpoint. Les deux apparaissent dans le même tableau de bord TestingBot.

Matrice de décision

Quand choisir lequel

Choisissez Selenium lorsque

  • Vous avez besoin d'une véritable couverture multi-navigateurs, y compris Safari, Internet Explorer 11 et Edge, et pas seulement Chromium.
  • Votre équipe écrit en Java, C#, Ruby ou Python et souhaite une parité complète des bibliothèques clientes.
  • Vous testez de véritables appareils iOS et Android, où Appium réutilise le même protocole WebDriver.
  • Vous souhaitez un protocole neutre conforme à la norme W3C plutôt qu'un protocole propre à Chrome.
  • Vous disposez d'une bibliothèque Page Object mature ou d'un framework BDD (Cucumber, SpecFlow) que vous ne souhaitez pas réécrire.
Exécuter Selenium sur TestingBot

Choisissez Puppeteer lorsque

  • Vous avez seulement besoin d'automatiser Chrome, Chromium ou Edge et vous souhaitez les exécutions les plus rapides possible.
  • Votre équipe privilégie Node.js et vous souhaitez une API en JavaScript ou TypeScript.
  • Vous faites du web scraping, de la génération de PDF, des captures d'écran ou du traçage des performances en parallèle des tests.
  • Vous souhaitez un accès direct via le protocole DevTools au réseau, à la console et aux événements CDP.
  • Vous n'avez pas besoin de Safari, d'Internet Explorer, de véritables appareils mobiles ni de langages autres que JavaScript.
Exécuter Puppeteer sur TestingBot
TestingBot prend en charge les deux

Arrêtez de choisir, exécutez les deux sur la même grille

Pointez Selenium vers le hub WebDriver et connectez Puppeteer via son browserWSEndpoint. Vos tests partagent les mêmes navigateurs et appareils 6100+, le même tableau de bord, les mêmes emplacements parallèles et la même résidence des données dans l'UE.

  • Même authentification, même projet, même facturation
  • Historique des tests côte à côte pour les deux outils
  • Gratuit pour les logiciels libres, pour les deux outils
testingbot.com / run both
# Selenium
webdriver.Remote(
command_executor='https://hub.testingbot.com/wd/hub'
)
// Puppeteer
puppeteer.connect({
browserWSEndpoint:
'wss://cloud.testingbot.com/puppeteer'
})
FAQ

Foire aux questions

Les questions que se posent les équipes avant de choisir, ou de combiner, ces outils.

Puppeteer est-il plus rapide que Selenium ?

En général oui, sur Chrome. Puppeteer communique directement avec le Chrome DevTools Protocol, évitant les allers-retours HTTP du protocole WebDriver, de sorte que les suites Chrome uniquement s'exécutent souvent plus vite. Mais ce gain ne s'applique qu'aux navigateurs basés sur Chromium, et il se réduit dès que les tests sont limités par le réseau. La prise en charge BiDi de Selenium 4 réduit également l'écart. La vitesse est réelle, mais c'est rarement le facteur décisif face à la portée multi-navigateurs de Selenium.

Puppeteer peut-il remplacer Selenium ?

Uniquement pour le travail axé sur Chrome. Puppeteer est excellent pour automatiser Chrome, Chromium et Edge depuis Node.js, mais il ne peut pas piloter Safari ni Internet Explorer, n'offre aucune prise en charge mobile réelle et ne fonctionne qu'en JavaScript. Si vous avez besoin de tests multi-navigateurs, de plusieurs langages ou de véritables appareils, Selenium reste l'outil le plus complet. De nombreuses équipes utilisent Puppeteer pour des vérifications rapides sur Chrome et Selenium pour une couverture multi-navigateurs complète.

Puppeteer prend-il en charge d'autres navigateurs que Chrome ?

Puppeteer pilote Chrome, Chromium et Edge basé sur Chromium, avec une prise en charge expérimentale de Firefox. Il ne peut pas piloter Safari ni Internet Explorer. Selenium pilote les binaires réels de tous les principaux navigateurs via les pilotes des éditeurs, y compris Safari et Internet Explorer 11. Si vous avez besoin d'autre chose que Chromium, Selenium est l'option des deux. TestingBot exécute les deux sur sa grille de navigateurs.

Puppeteer peut-il tester des applications mobiles ?

Non. Puppeteer propose l'émulation de la fenêtre d'affichage mobile dans Chromium, mais il ne peut pas piloter d'applications iOS ou Android natives. Pour de véritables tests mobiles, vous avez besoin d'Appium, XCUITest, Espresso ou Maestro. Appium réutilise le protocole WebDriver sur lequel repose Selenium. TestingBot exécute toutes ces solutions sur de véritables appareils iOS et Android.

Puppeteer ou Selenium, lequel est le meilleur pour le web scraping ?

Puppeteer est le choix le plus courant pour le scraping, la génération de PDF et l'automatisation de Chrome sans interface, grâce à son accès direct au DevTools et à son écosystème Node.js. Selenium peut aussi faire du scraping, mais sa force est l'automatisation de tests multi-navigateurs dans de nombreux langages. Choisissez l'outil qui correspond à la tâche : Puppeteer pour les tâches d'automatisation Chrome, Selenium pour les tests multi-navigateurs basés sur des normes.

Puis-je exécuter Puppeteer en parallèle sur TestingBot ?

Oui. Le parallélisme de Puppeteer basé sur les workers (via Jest, Mocha ou un lanceur personnalisé) fonctionne sur la grille TestingBot : chaque worker ouvre son propre navigateur distant via le point de terminaison WebSocket. La concurrence est plafonnée par votre forfait. Selenium se parallélise de la même façon via le hub WebDriver.

Puis-je exécuter Selenium et Puppeteer sur TestingBot ?

Oui, les deux s'exécutent sur le même cloud TestingBot. Selenium se connecte à https://hub.testingbot.com/wd/hub via webdriver.Remote. Puppeteer se connecte avec puppeteer.connect en utilisant un browserWSEndpoint de wss://cloud.testingbot.com/puppeteer. Les tests des deux apparaissent dans le même tableau de bord, partagent des emplacements parallèles et bénéficient de la même résidence des données dans l'UE, de l'enregistrement vidéo et des intégrations CI/CD. Les deux sont gratuits pour les projets open source.

Vous souhaitez aller plus loin ? Consultez les pages dédiées à Selenium et Puppeteer.

Inscrivez-vous pour un essai gratuit

Exécutez Selenium, Puppeteer, ou les deux, sur le cloud de TestingBot.

Essai gratuit