Qu'est-ce que le Selenium? Tutoriel d'introduction
⚡ Résumé intelligent
Selenium est un framework de test automatisé gratuit et open source conçu pour valider les applications web sur différents navigateurs et plateformes, utilisant plusieurs langages de programmation. Il permet une automatisation des tests robuste, efficace et évolutive, adaptée aux pratiques d'assurance qualité modernes.
Qu'est-ce que le Selenium?
Selenium est un framework de test automatisé gratuit (open source) utilisé pour valider les applications Web sur différents navigateurs et plates-formes. Vous pouvez utiliser plusieurs langages de programmation comme Java, C#, Python, etc. pour créer Selenium Testez les scripts. Tests effectués à l'aide du Selenium L'outil de test est généralement appelé Selenium Tests.
Perspectives d'experts
Évitez d'utiliser des délais de mise en veille fixes dans vos tests. Privilégiez plutôt des temps d'attente explicites (comme WebDriverWait) pour le chargement des éléments. Vos scripts seront ainsi plus fiables et plus rapides, car ils s'adapteront dynamiquement aux conditions réelles de la page – une bonne pratique essentielle pour les étudiants du monde entier, à commencer par Selenium. »
👉 Inscrivez-vous gratuitement en direct Selenium Projet de test
Selenium Suite d'outils
Selenium Le logiciel n'est pas simplement un outil unique mais une suite de logiciels, chaque élément répondant à des besoins différents. Selenium Besoins en matière de tests d’assurance qualité d’une organisation. Voici la liste des outils
- Selenium Environnement de développement intégré (IDE)
- Selenium Télécommande (RC)
- pilote web
- Selenium Grille
À l'heure actuelle, Selenium RC et WebDriver sont fusionnés en un seul framework pour former Selenium 2. Selenium 1, d'ailleurs, fait référence à Selenium RC.
Tutoriel vidéo Selenium
Cliquez à nouveau ici si la vidéo n'est pas accessible
Qui a développé Selenium?
Depuis que Selenium est une collection de différents outils, il a également eu différents développeurs. Vous trouverez ci-dessous les personnes clés qui ont apporté des contributions notables au Selenium Projet
Principalement, Selenium a été élaboré créé par Jason Huggins en 2004Ingénieur chez ThoughtWorks, il travaillait sur une application web nécessitant des tests fréquents. Constatant que les tests manuels répétitifs de leur application devenaient de plus en plus inefficaces, il a créé un outil de test automatisé. Javascénario programme qui contrôlerait automatiquement les actions du navigateur. Il a nommé ce programme le "JavaScriptTestRunner."
Voyant le potentiel de cette idée pour aider à automatiser d'autres applications Web, il a créé JavaScriptRunner, logiciel libre, a ensuite été renommé Selenium Core. Pour ceux qui souhaitent explorer d'autres options de test d'applications Web, jetez un œil à celles-ci. Selenium des alternatives.
Le problème de la politique de même origine
La politique de même origine interdit JavaCode de script accédant à des éléments d'un domaine différent de celui où il a été lancé. Par exemple, le code HTML de www.google.com utilise un JavaLe script « randomScript.js » est soumis à la politique d'origine identique, qui l'autorise uniquement à accéder aux pages de google.com, telles que google.com/mail, google.com/login ou google.com/signup. Il ne peut en revanche pas accéder aux pages d'autres sites, comme yahoo.com/search ou guru99.com, car ces derniers appartiennent à des domaines différents.
C’est la raison pour laquelle, avant Selenium RC, des testeurs sont nécessaires pour installer des copies locales des deux Selenium Noyau (un JavaLe programme de script et le serveur web hébergeant l'application web testée appartiennent donc au même domaine.
La naissance de Selenium Télécommande (Selenium RC)
Malheureusement, les testeurs utilisant Selenium Core a dû installer l'ensemble de l'application testée ainsi que le serveur Web sur ses propres ordinateurs locaux en raison des restrictions imposées par le politique d'origine identiqueUn autre ingénieur de ThoughtWorks, Paul Hammant, a décidé de créer un serveur qui agirait comme un proxy HTTP pour « tromper » le navigateur et lui faire croire que Selenium Core et l'application Web testée proviennent du même domaine. Ce système est devenu connu sous le nom de Selenium Contrôle à distance or Selenium 1.
La naissance de Selenium Grille
Selenium La grille a été développée par Patrick Lightbody pour répondre au besoin de minimiser autant que possible les temps d'exécution des tests. Il a initialement appelé le système « Questions-réponses hébergées. » Il était capable de capturer des captures d'écran du navigateur à des étapes importantes, et aussi de envoi Selenium commandes à différentes machines simultanément.
La naissance de Selenium IDE
Shinya Kasatani du Japon a créé Selenium IDE Firefox et une extension Chrome permettant d'automatiser le navigateur grâce à une fonction d'enregistrement et de lecture. Il a eu cette idée pour accélérer encore la création de cas de test. Il a fait un don. Selenium IDE au Selenium Projet en 2006.
Naissance de WebDriver
Simon Stewart créé WebDriver vers 2006 lorsque les navigateurs et les applications Web devenaient plus puissants et plus restrictifs avec JavaProgrammes de script comme Selenium Coeur. Il s'agissait du premier framework de test multiplateforme capable de contrôler le navigateur au niveau du système d'exploitation.
La naissance de Selenium 2
In 2008, la totalité Selenium L'équipe a décidé de fusionner WebDriver et Selenium RC pour former un outil plus puissant appelé Selenium 2(la prise en charge WebDriver étant le noyau. Actuellement, Selenium Le système RC est toujours en développement, mais uniquement en mode maintenance. La plupart des Selenium Les efforts du projet se concentrent désormais sur Selenium 2.
Alors, pourquoi ce nom Selenium?
Le nom Selenium vient d'une blague que Jason a racontée une fois à son équipe. Pendant Seleniumle développement, un autre tests automatisés Le framework était populairement fabriqué par la société appelée Mercury Apprentissage (oui, l'entreprise qui a fabriqué à l'origine QTP (avant son rachat par HP). Depuis Selenium est un antidote bien connu contre Mercury empoisonnement, Jason a suggéré ce nom et ses coéquipiers l'ont pris. C’est ainsi que nous avons pu appeler ce cadre jusqu’à présent.
Qu'est-ce que le Selenium IDE?
Selenium L'environnement de développement intégré (IDE) est le cadre le plus simple dans le Selenium suite et est le plus simple à apprendre. C’est une nécessité Chrome et Firefox plug-in que vous pouvez installer aussi facilement qu’avec d’autres plugins. Cependant, en raison de sa simplicité, Selenium L'IDE ne doit être utilisé que comme un prototypeping outil. Si vous souhaitez créer des cas de test plus avancés, vous devrez utiliser soit Selenium RC ou WebDriver.
Qu'est-ce que le Selenium Télécommande (Selenium RC) ?
Selenium RC était le cadre de test phare dans le trou Selenium projet depuis longtemps. C'est le premier automatisé test Web outil qui permet aux utilisateurs d'utiliser un langage de programmation qu'ils préfèrent. Depuis la version 2.25.0, RC peut prendre en charge les langages de programmation suivants :
Qu'est-ce que WebDriver ?
Le WebDriver s'avère meilleur que Selenium IDE et Selenium RC sous de nombreux aspects. Il implémente une approche plus moderne et stable dans l'automatisation des actions du navigateur. WebDriver, contrairement à Selenium RC, ne s'appuie pas sur JavaScénario pour Selenium Tests d'automatisation. Il contrôle le navigateur en communiquant directement avec lui.
Les langues prises en charge sont les mêmes que celles de Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Ruby
Qu'est-ce que le Selenium Grille?
Selenium La grille est un outil utilisé avec Selenium RC à courir tests parallèles sur différentes machines et différents navigateurs en même temps. L'exécution parallèle signifie exécuter plusieurs tests à la fois.
Caractéristiques :
- Permet réalisation simultanée de tests in plusieurs navigateurs et environnements.
- Gain de temps énormément.
- Utilise le hub-et-nœuds concept. Le hub agit comme une source centrale de Selenium commandes à chaque nœud qui y est connecté.
Selenium Prise en charge du navigateur et de l'environnement
En raison de leurs différences architecturales, Selenium SDI, Selenium RC et WebDriver prennent en charge différents ensembles de navigateurs et d'environnements d'exploitation.
| Selenium IDE | pilote web | |
|---|---|---|
| Support du navigateur | Mozilla Firefox et Chrome | Google Chrome 12 Firefox Internet Explorer 7+ et Edge Safari, HtmlUnit et PhantomUnit |
| Operating système | Windows, Mac OS X, Linux | Tous les systèmes d'exploitation sur lesquels les navigateurs ci-dessus peuvent fonctionner. |
À noter: Opera Le pilote ne fonctionne plus
Comment choisir le bon Selenium Un outil adapté à vos besoins
| Outil | Pourquoi choisir? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| pilote web |
|
| Selenium Grille |
|
Études de cas réels
Étude de cas 1 : Compatibilité entre navigateurs pour le tableau de bord SaaS
Scénario
Une société de logiciels en tant que service se préparait à publier un tableau de bord d'analyse qui devait fonctionner de manière cohérente sur les navigateurs modernes (Chrome, Firefox, Edge, Safari).
Challenge
Les tests manuels sur chaque navigateur prenaient du temps, étaient sujets aux erreurs et ne pouvaient pas suivre le rythme des itérations de développement rapides.
Solution avec Selenium
Un ingénieur QA a créé un Selenium Grille configuré pour exécuter simultanément la même suite de tests sur plusieurs navigateurs et systèmes d'exploitation. Les tests ont été créés en Python grâce à Selenium WebDriver pour des actions telles que la connexion, le filtrage des graphiques et l'exportation de données.
Résultat
- Durée de régression réduite de 80 %.
- J'ai découvert très tôt des bugs de rendu spécifiques au navigateur (par exemple, des graphiques mal alignés dans IE).
- Nous avons maintenu une expérience utilisateur cohérente pour le tableau de bord sur l'ensemble des navigateurs, sans intervention manuelle supplémentaire.
⚙️ Étude de cas 2 : Intégration CI/CD pour application Web via Selenium + TestNG
Scénario
Une entreprise de développement web de taille moyenne s'appuie sur un pipeline CI/CD utilisant JenkinsIls devaient s'assurer que les parcours utilisateurs principaux fonctionnaient correctement après chaque modification du code.
Challenge
Les nouveaux déploiements perturbaient parfois les flux utilisateurs (connexion, soumission de formulaires, etc.).ping Détection jusqu'aux tests manuels de fin de journée.
Solution avec Selenium
Un testeur a implémenté un Java-Base Selenium Suite WebDriver intégrée à TestNGLes tests portaient sur l'authentification, les mises à jour de profil et les fonctionnalités de recherche. Ils ont été exécutés sur chaque appareil. Jenkins construction, en tirant parti de l'exécution parallèle et de la paramétrisation du navigateur.
Résultat
- Retour d'information rapide obtenu : les flux interrompus ont été signalés immédiatement.
- Réduction des bugs post-déploiement de plus de 60 %.
- A permis aux développeurs de résoudre les problèmes avant qu'ils n'atteignent l'assurance qualité.
Étude de cas 3 : Accélération du lancement de fonctionnalités pour un agrégateur de voyages
Scénario
Une plateforme d'agrégation de voyages devait lancer une fonctionnalité de réservation de vols repensée. Des tests de régression manuels sur plus de 10 pages ont pris des jours et ont bloqué le lancement.
Challenge
La pression pour réduire les délais de mise sur le marché ne pouvait pas dépasser les cycles de tests manuels, risquant ainsi des retards ou une baisse de la qualité.
Solution avec Selenium & Modèle d'objet de page
Un responsable de l'automatisation de l'assurance qualité a introduit une structure de modèle d'objet de page (POM) en C#. Selenium Les scripts WebDriver encapsulaient les éléments et actions de la page (recherche de vols, application de filtres et gestion des paiements). Des tests automatisés étaient exécutés chaque nuit sur GitLab CI.
Résultat
- Le temps de test est passé de 3 jours à seulement 4 heures.
- La réutilisation des scripts sur plusieurs fonctionnalités réduit l'effort de création de scripts de 50 %.
- La confiance a augmenté : la version a été livrée dans les délais avec un minimum de rapports de bugs.
Commun Selenium Défis (et correctifs)
Même si Selenium Bien que puissant, ce logiciel de test présente souvent des défis qui peuvent affecter la fiabilité et la rapidité. Voici quelques problèmes courants et comment les résoudre :
- Tests peu fiables :
Les tests peuvent échouer de manière aléatoire en raison de problèmes de synchronisation ou de réseau.
Correction: Utilisez des attentes explicites et des localisateurs stables ; évitezThread.sleep(). - Éléments Web dynamiques :
La modification des identifiants ou des chemins XPath des éléments provoque des erreurs « élément introuvable ».
Correction: Utilisez des XPath relatifs, des sélecteurs CSS ou la gestion dynamique des attributs. - SyncProblèmes d'échographie :
Le chargement des éléments est plus lent que l'exécution du script.
Correction: Implémentez WebDriverWait avec les conditions attendues. - Incohérences entre navigateurs :
Les tests se comportent différemment sur Chrome, Firefox, ou Edge.
Correction: Exécuter des tests sur Selenium Plateformes de grille ou de cloud pour la validation multi-navigateurs. - Gestion des fenêtres contextuelles et des alertes :
Des fenêtres contextuelles inattendues peuvent interrompre le déroulement des tests.
Correction: Utilisez le SeleniumUtilisez l'interface d'alerte ou des blocs try-catch pour les gérer correctement. - Frais généraux de maintenance des tests :
Les modifications fréquentes de l'interface utilisateur rendent les tests fragiles.
Correction: Adoptez le modèle Page Object (POM) et le contrôle de version pour faciliter les mises à jour. - Défis d'intégration :
Les pipelines CI/CD peuvent échouer en raison de problèmes de pilotes.
Correction: Utilisez le Selenium Directeur (Selenium 4+) ou WebDriver Manager pour gérer automatiquement les pilotes.
En bref: pont Selenium Les problèmes proviennent d'une mauvaise synchronisation ou de localisateurs fragiles ; ces deux problèmes peuvent être résolus grâce à des temps d'attente plus intelligents, une conception modulaire et une maintenance continue.





.png)
.jpg)
.jpg)
.jpg)



