đź§Ş Tests
selenium-guide
Automatisation de tests avec Selenium WebDriver, couvrant les locators, les waits, le Page Object Model et Selenium Grid.
⚡ Installation & lancement en 1 commande
Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- selenium-guide --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } selenium-guide -Launch"
🚀 Déjà installé ?
claude "/selenium-guide"
Ou tapez /selenium-guide dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.
🔑 Déclencheurs automatiques
Le skill s'active automatiquement quand votre demande contient :
SeleniumWebDrivertest automatiséPage Object Model
📦 Installation manuelle
git clone https://github.com/khalilbenaz/claude-skills-collection.git
cp -r claude-skills-collection/testing-skills/selenium-guide ~/.claude/skills/
Source : testing-skills/selenium-guide
đź“– Manuel
Selenium WebDriver Guide
Workflow
- Configurer l'environnement Selenium — Installer Selenium WebDriver pour le langage cible (Java, Python, C#). Configurer le WebDriverManager pour la gestion automatique des drivers navigateur. Définir les capabilities et options du navigateur.
- Choisir les locators appropriés — Privilégier les locators stables :
id, name, data-testid. Utiliser les CSS selectors pour la performance et XPath uniquement quand nécessaire. Éviter les locators basés sur la position ou le style.
- Implémenter les waits correctement — Configurer un implicit wait global raisonnable. Utiliser des explicit waits (
WebDriverWait + ExpectedConditions) pour les éléments dynamiques. Ne jamais mélanger implicit et explicit waits.
- Appliquer le Page Object Model — Créer une classe par page ou composant majeur. Encapsuler les locators et les interactions dans des méthodes métier. Séparer la logique de test de la logique de navigation.
- Gérer les interactions complexes — Utiliser
Actions pour le drag-and-drop, hover et double-click. Gérer les iframes avec switchTo().frame(). Traiter les alertes, fenêtres multiples et onglets avec les méthodes appropriées.
- Structurer la suite de tests — Organiser les tests avec un framework (TestNG, pytest, NUnit). Utiliser les annotations de setup/teardown pour initialiser et fermer le driver. Implémenter un reporting clair (Allure, ExtentReports).
- Configurer Selenium Grid pour le parallélisme — Déployer un Hub et des Nodes pour l'exécution distribuée. Utiliser Docker Selenium pour simplifier l'infrastructure. Configurer les capabilities par navigateur et plateforme.
- Intégrer dans le pipeline CI/CD — Exécuter les tests en mode headless dans le CI. Configurer la capture de screenshots en cas d'échec. Publier les rapports de test et gérer les artefacts.
Règles
- Toujours fermer le WebDriver dans le teardown (
driver.quit()) pour éviter les fuites de processus navigateur.
- Ne jamais utiliser
Thread.sleep() ou des délais fixes ; utiliser exclusivement les waits explicites de Selenium.
- Appliquer systématiquement le Page Object Model pour tout projet dépassant une dizaine de tests afin de garantir la maintenabilité.
- Externaliser les données de test (fichiers CSV, JSON ou base de données) et ne jamais coder les données en dur dans les classes de test.
- Concevoir chaque test pour qu'il soit atomique et indépendant, sans dépendance d'ordre d'exécution.