Installation

Installez la bibliothèque via pip ou ajoutez-la à votre requirements.txt.

terminal
pip install selenium-ui-test-tool
Environnement Local

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.

clicks_example.py

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.

form_example.py

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.

Abstraction d'Upload

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.

upload_example.py

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.

Compatibilité Pytest

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.

assert_example.py