Selenium

Logo SeleniumSelenium est un outil open-source puissant et historique pour l'automatisation des navigateurs et les tests end-to-end des applications web. Il permet de contrôler un vrai navigateur (Chrome, Firefox, Edge, Safari…) via des scripts écrits dans de nombreux langages (Java, Python, JavaScript, C#, Ruby, PHP…). 
Très utilisé dans l'écosystème Drupal depuis de nombreuses années, Selenium est particulièrement adapté pour tester les fonctionnalités JavaScript lourdes, les interactions complexes, les uploads de fichiers, les workflows multi-étapes et les scénarios cross-browser. Il reste une référence pour les projets enterprise, les tests fonctionnels JavaScript dans le core Drupal (via PHPUnit + Mink + WebDriver) et les environnements nécessitant une grande flexibilité.

 

Fonctionnalités principales de Selenium

  • Support multi-langages : Écrivez vos tests en Java, Python, JavaScript (Node.js), C#, PHP, Ruby…
  • Multi-navigateurs & cross-platform : Chrome, Firefox, Edge, Safari, Internet Explorer, et même émulation mobile via Appium.
  • WebDriver natif : Communication directe avec le navigateur pour une exécution réaliste (pas d'injection JavaScript comme Cypress).
  • Intégration PHPUnit / Mink : Dans Drupal 8/9/10/11, les FunctionalJavaScript tests utilisent Selenium WebDriver via Mink pour tester le JS.
  • Selenium Grid : Exécutez des tests en parallèle sur plusieurs machines / navigateurs / OS pour des tests massifs.
  • Selenium IDE : Extension navigateur pour enregistrer rapidement des scénarios (idéal pour prototyper ou tester manuellement).
  • Gestion avancée des fenêtres / frames / iframes / popups : Parfait pour les interfaces Drupal complexes (modales, CKEditor, media library…).
  • Attentes explicites / implicites / fluent : Contrôle fin des synchronisations (très utile mais demande plus de code que l'attente automatique de Cypress).
  • Screenshots & vidéos : Capture automatique sur échec (via listeners ou extensions).
  • Intégration CI/CD : Jenkins, GitHub Actions, GitLab CI, CircleCI… très mature.

 

Utilisation de Selenium avec un projet Drupal

Nous recommandons Selenium pour :

  • Les projets enterprise / institutionnels avec besoin de tests cross-browser (y compris Safari / anciens Edge).
  • Les équipes qui maîtrisent déjà Java / Python / PHP et veulent rester dans le même langage que le back-end.
  • Les très gros sites nécessitant Selenium Grid ou cloud testing (BrowserStack, Sauce Labs…).
  • Les cas où Cypress est limité (multi-onglets, iframes complexes, nouveaux navigateurs non supportés rapidement).
  • Les clients qui exigent une couverture maximale et une traçabilité forte (logs détaillés, vidéos, rapports).

 

Selenium demande plus de configuration et d'attention aux attentes que Cypress, mais offre une maturité inégalée, un support multi-langage / multi-navigateur, et une intégration profonde avec les outils Drupal/PHP existants.

Il reste  un choix solide pour les projets Drupal exigeants en termes de couverture et de fiabilité cross-browser.