Comment utiliser Selenium pour tester une application web

Selenium est un outil populaire pour l’automatisation des tests des applications web. Il permet d’interagir avec les navigateurs comme un utilisateur réel, en simulant des actions telles que le clic, la saisie de texte et la navigation entre les pages. Cet article explore l’utilisation de Selenium pour tester une application web, de l’installation à l’écriture de scripts de test.

Installation de Selenium

Avant de commencer, assurez-vous d’avoir Python installé sur votre machine. Ensuite, installez Selenium avec la commande suivante :

pip install selenium

Vous aurez également besoin d’un WebDriver correspondant à votre navigateur. Par exemple, pour Chrome, téléchargez ChromeDriver et placez-le dans un répertoire accessible.

Écrire un premier test avec Selenium

Voici un exemple simple de script Selenium en Python pour ouvrir une page web et vérifier son titre :

from selenium import webdriver

# Initialiser le navigateur
browser = webdriver.Chrome()

# Ouvrir une URL
browser.get("https://www.example.com")

# Vérifier le titre de la page
assert "Example Domain" in browser.title

# Fermer le navigateur
browser.quit()

Interagir avec les éléments d’une page

Selenium permet d’interagir avec les éléments HTML de la page web. Voici quelques exemples courants :

Trouver un élément et envoyer du texte

from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get("https://www.example.com")

input_field = browser.find_element(By.NAME, "q")
input_field.send_keys("Selenium Python")
input_field.submit()

Cliquer sur un bouton

button = browser.find_element(By.ID, "submit-button")
button.click()

Attendre un élément

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()
browser.get("https://www.example.com")

wait = WebDriverWait(browser, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "some-id")))

Bonnes pratiques pour les tests avec Selenium

  1. Utiliser les WebDriverWait : Évitez les time.sleep() et privilégiez WebDriverWait pour attendre des éléments.
  2. Organiser les tests : Structurez votre code avec des frameworks de test comme pytest ou unittest.
  3. Utiliser Page Object Model (POM) : Séparez la logique des tests des interactions avec la page pour faciliter la maintenance.
  4. Nettoyer après les tests : Fermez toujours le navigateur avec browser.quit() pour éviter les fuites de ressources.
  5. Exécuter les tests sur plusieurs navigateurs : Testez sur Chrome, Firefox et Edge pour assurer la compatibilité.

Conclusion

Selenium est un outil puissant pour l’automatisation des tests des applications web. En suivant les bonnes pratiques et en utilisant les fonctionnalités avancées comme les WebDriverWait et le Page Object Model, vous pouvez écrire des tests robustes et efficaces. Intégrer Selenium dans un pipeline CI/CD garantit une détection rapide des régressions et améliore la qualité du logiciel.

carle
carle