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
- Utiliser les WebDriverWait : Évitez les
time.sleep()et privilégiezWebDriverWaitpour attendre des éléments. - Organiser les tests : Structurez votre code avec des frameworks de test comme
pytestouunittest. - Utiliser Page Object Model (POM) : Séparez la logique des tests des interactions avec la page pour faciliter la maintenance.
- Nettoyer après les tests : Fermez toujours le navigateur avec
browser.quit()pour éviter les fuites de ressources. - 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.

















