Chaque mise en production d’une application web peut casser un parcours que personne n’a pensé à revérifier : un formulaire d’inscription, un tunnel de paiement, un menu qui ne s’ouvre plus sous Safari. Selenium automatise ces vérifications en pilotant de vrais navigateurs, comme le ferait un utilisateur. Né en 2004 chez ThoughtWorks à Chicago pour tester une application interne, le projet est aujourd’hui porté par la Software Freedom Conservancy, une association à but non lucratif, et diffusé sous licence Apache 2.0.
Quel problème Selenium règle, et pour qui
Tester à la main une interface web sur Chrome, Edge, Firefox et Safari, à chaque version, coûte vite plusieurs jours de recette. Selenium remplace ces clics répétitifs par des scripts qui ouvrent le navigateur, remplissent les champs, cliquent et vérifient le résultat. Le site officiel le résume sans détour : le projet automatise des navigateurs, et l’usage que vous en faites vous appartient. Les tests de régression restent l’usage principal, mais la documentation cite aussi les tâches d’administration web répétitives.
Le public est d’abord technique : développeurs et ingénieurs QA qui écrivent leurs tests dans le langage de leur application. Selenium n’est pas un service en ligne mais un ensemble de bibliothèques et d’outils à installer, qui trouve sa place à côté des autres outils de développement web de l’équipe.
Comment Selenium fonctionne : trois briques complémentaires
La documentation présente Selenium comme une collection d’outils plutôt qu’un logiciel unique. Chacun répond à une étape différente de l’automatisation.
WebDriver, le cœur du projet
WebDriver est une API devenue recommandation du W3C : elle pilote le navigateur de façon native, en local ou sur une machine distante, à partir des interfaces d’automatisation fournies par les éditeurs de navigateurs. Les liaisons officielles existent en Java, Python, C#, Ruby et JavaScript, et Kotlin passe par la bibliothèque Java. L’installation se fait avec le gestionnaire de paquets habituel : Maven ou Gradle, pip, NuGet, gem ou npm. Si vous débutez, la documentation recommande de commencer par cette brique, et un développeur qui maîtrise les bases de Python écrit son premier script en quelques lignes.
Depuis la version 4.6, Selenium Manager règle la corvée historique des pilotes : il détecte le navigateur, télécharge chromedriver, geckodriver ou msedgedriver et les met en cache. Depuis la 4.11, il peut même télécharger le navigateur s’il manque sur la machine. Le protocole WebDriver BiDi, conçu par le projet avec les éditeurs de navigateurs, ajoute une connexion WebSocket pour suivre en direct requêtes réseau, messages de console et erreurs JavaScript.
Grid, pour passer à l’échelle
Quand la suite de tests grossit, Selenium Grid répartit l’exécution sur plusieurs machines, versions de navigateurs et systèmes d’exploitation. Il demande Java 11 ou plus et propose trois modes : autonome sur un seul poste (pratique en intégration continue), hub et nœuds (le plus courant), ou entièrement distribué pour les gros volumes. La documentation conseille d’isoler les nœuds dans des conteneurs Docker, et le déploiement sur Kubernetes est documenté.
IDE, pour enregistrer sans coder
Selenium IDE enregistre vos actions dans le navigateur puis les rejoue. Il s’installe désormais comme application autonome sur Windows, macOS et Linux ; l’ancienne extension Chrome a été retirée du Chrome Web Store. Les scénarios acceptent des structures de contrôle (if, while, times, for each), l’export vers Java JUnit, Python pytest, JavaScript Mocha ou C# NUnit, et une exécution en ligne de commande avec selenium-side-runner, en parallèle ou sur une grille.
Cas d’usage concrets par profil
- Équipe QA d’un site e-commerce : une suite WebDriver rejoue chaque nuit inscription, recherche, panier et paiement sur Chrome, Firefox et Safari, puis remonte un rapport xUnit dans l’outil d’intégration continue.
- Développeur back-end ou full-stack : quelques tests de bout en bout en Python ou en Java vérifient qu’un correctif ne casse pas le parcours principal avant la fusion.
- Équipe plateforme : une grille Docker ou Kubernetes partagée sert toutes les équipes produit et réduit la durée des campagnes de tests grâce au parallélisme.
- Testeur fonctionnel sans bagage de développeur : Selenium IDE capture un scénario de reproduction de bug à joindre au ticket, puis l’exporte en code pour l’équipe technique.
- Profil marketing ou data : la bibliothèque sert aussi à automatiser des tâches répétitives dans un back-office web. Pour extraire des données à grande échelle, des logiciels de scraping sont souvent plus adaptés.
Selenium face à Playwright et Cypress
Le choix se joue surtout entre trois approches. Playwright, porté par Microsoft, mise sur une API récente avec attentes automatiques et un lanceur de tests intégré. Cypress s’adresse aux équipes JavaScript et s’exécute au plus près de l’application, avec une interface de débogage visuelle. Selenium garde deux atouts distincts : il repose sur un standard du W3C pris en charge par les éditeurs de navigateurs eux-mêmes, et il couvre le plus large éventail de langages, ce qui compte dans une entreprise où cohabitent Java, C# et Python.
Autre différence : Selenium est un projet communautaire sans offre commerciale propre. Les grilles hébergées et le support professionnel passent par des partenaires de l’écosystème, comme BrowserStack ou TestMu AI (ex-LambdaTest), qui figurent parmi les partenaires de développement du projet.
Les limites à connaître avant de vous lancer
La documentation officielle est franche sur ce que Selenium ne fait pas bien. Le projet indique qu’il n’est pas conçu pour produire des rapports de résultats : il faut s’appuyer sur ceux du framework de test (JUnit, pytest, NUnit…). Il déconseille aussi les tests de performance, la vérification des codes de réponse HTTP, le contournement des CAPTCHA, la double authentification et l’exploration de tous les liens d’un site, tâche pour laquelle un crawler dédié fait mieux l’affaire.
Côté organisation, l’absence d’éditeur se ressent : le support passe par le groupe d’utilisateurs, Slack, IRC, Matrix et les tickets GitHub, sans engagement de délai. La documentation existe en anglais, portugais, chinois et japonais, mais pas en français. Enfin, la qualité des tests dépend de votre code : la page consacrée aux agents IA rappelle les erreurs fréquentes, comme les pauses fixes ou les XPath absolus, qui rendent une suite instable.
Quelle brique adopter selon votre situation
- Vous démarrez l’automatisation avec des développeurs dans l’équipe : commencez par WebDriver dans le langage de votre application, et laissez Selenium Manager gérer les pilotes.
- Vos tests dépassent quelques minutes ou doivent couvrir plusieurs navigateurs : ajoutez Grid en mode autonome dans votre intégration continue, puis passez au mode hub et nœuds.
- Vous n’avez pas de ressource pour maintenir une infrastructure : envisagez une grille hébergée chez un partenaire de l’écosystème, en gardant vos scripts WebDriver inchangés.
- Votre équipe recette n’écrit pas de code : Selenium IDE permet d’enregistrer les premiers scénarios, à condition de prévoir leur reprise en code pour les parcours critiques.
Pour cibler les bons navigateurs dès le départ, croisez votre audience avec les parts de marché des navigateurs : inutile de multiplier les combinaisons que vos visiteurs n’utilisent pas.







