Documentation Officielle
Apprenez à utiliser la bibliothèque d'abstraction Selenium pour rendre vos tests e2e stables et lisibles, résilient et facile à maintenir.
Installation
Installez la bibliothèque via pip ou ajoutez-la à votre
requirements.txt.
pip install selenium-ui-test-tool
Si vous utilisez les fonctions d'upload upload_file ou de connexion
fill_login_form,
vous aurez besoin de configurer vos variables d'environnement via un fichier
.env racine.
Principes Fondamentaux
La philosophie de cette bibliothèque est d'absorber toute l'instabilité liée au comportement inattendu des navigateurs lors de tests automatisés.
- Safe by default: Chaque interaction (clic ou input) vérifie au préalable que l'élément est non seulement présent dans le DOM, mais aussi interactable.
- Pas de "ElementNotInteractableException": L'abstraction utilise une injection JavaScript standardisée pour scroller la fenêtre jusqu'à l'élément ciblé AVANT d'interagir avec lui, évitant ainsi que les sticky headers ou popups bloquent le clic natif de Selenium.
- Verbosité sur demande: Les outils natifs permettent une personnalisation complète des logs de succès et d'échec, facilitant le débogage sur les plateformes de CI (GitHub Actions, GitLab CI).
Interactions et Clics
L'API fournit deux méthodes principales pour remplacer le sempiternel
driver.find_element(...).click().
Ces méthodes encadrent le clic avec une attente explicite intelligente.
click_on()
La méthode privilégiée. Oblige le développeur à fournir des messages de logging clairs, ce qui rend le terminal lisible lors des run de tests.
click_element()
Méthode parent, exposant tous les paramètres sous-jacents, utile pour les edge-cases où l'on veut un clic "aveugle" via JS sans valider l'interactabilité préalable.
Formulaires
Remplissage Simple (fill_input)
Gère le wait, le scroll, le clear() et le
send_keys() en une seule ligne.
Gestion des Fichiers
Tester les champs d'upload est souvent instable, particulièrement sur les CI (Linux/Docker) par rapport à un développement local sur Mac/Windows en raison des chemins de fichiers.
L'utilitaire upload_file résout cela en prenant non pas le chemin en dur du
fichier, mais le nom de la variable d'environnement qui stocke le
chemin absolu.
Assertions UI
Validez l'état final de votre interface de façon sécurisée (apparition d'un message flash, disparition d'un loader) sans vous soucier des timeouts aléatoires.
En cas d'échec (le texte n'apparaît pas ou ne correspond pas), la méthode soulève
nativement une AssertionError, qui est interceptée proprement par Pytest.