Introduction
Dans le monde du développement et de l'automatisation, Selenium est une bibliothèque incontournable pour automatiser les actions dans un navigateur web. Couplé à Python, il permet de simuler un utilisateur réel : ouvrir un site, remplir des formulaires, cliquer sur des boutons, ou encore extraire des données. Que vous souhaitiez automatiser des tests d’interfaces web ou interagir avec des sites sans API, Selenium est l'outil qu’il vous faut.
Dans cet article, vous allez découvrir comment utiliser Selenium avec Python pour automatiser différentes tâches dans un navigateur, avec des exemples pratiques et simples à comprendre.
1. Installation de Selenium
Selenium n’est pas inclus dans la bibliothèque standard de Python, vous devez donc l’installer avec pip :
pip install selenium
Vous aurez également besoin d’un driver pour le navigateur que vous souhaitez automatiser, comme ChromeDriver pour Google Chrome ou GeckoDriver pour Firefox.
2. Démarrer avec Selenium et ouvrir une page web
Voici comment lancer un navigateur Chrome avec Selenium et ouvrir un site :
from selenium import webdriver
driver = webdriver.Chrome() # ou Firefox(), Edge(), etc.
driver.get("https://www.python.org")
3. Trouver des éléments sur la page
Vous pouvez sélectionner des éléments HTML de plusieurs façons : par nom, id, classe, balise, ou via des XPath/CSS selectors.
from selenium.webdriver.common.by import By
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("pygame")
search_box.submit()
4. Remplir des formulaires automatiquement
Selenium permet de remplir n’importe quel champ et de soumettre des formulaires :
username = driver.find_element(By.ID, "username")
password = driver.find_element(By.ID, "password")
username.send_keys("mon_utilisateur")
password.send_keys("mon_mot_de_passe")
driver.find_element(By.ID, "login-button").click()
5. Cliquer sur des boutons et des liens
button = driver.find_element(By.XPATH, "//button[text()='Envoyer']")
button.click()
6. Extraire du texte depuis une page
titre = driver.find_element(By.TAG_NAME, "h1")
print("Titre de la page :", titre.text)
7. Gérer les délais et attendre les éléments
Le chargement des pages peut prendre du temps. Utilisez WebDriverWait
pour attendre l’apparition d’un élément :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))
8. Naviguer entre les pages et revenir en arrière
driver.back()
driver.forward()
9. Prendre une capture d'écran
driver.save_screenshot("screenshot.png")
10. Fermer le navigateur
driver.quit()
11. Exemple complet : rechercher un mot sur Google
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get("https://www.google.com")
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")
search_box.send_keys(Keys.RETURN)
time.sleep(3) # Attente simple pour chargement
results = driver.find_elements(By.CSS_SELECTOR, "h3")
for result in results[:5]:
print(result.text)
driver.quit()
12. Bonus : automatiser un téléchargement de fichier
Certains fichiers peuvent être automatiquement téléchargés en configurant le navigateur :
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("prefs", {
"download.default_directory": "/chemin/vers/dossier",
"download.prompt_for_download": False,
})
driver = webdriver.Chrome(options=options)
driver.get("https://example.com/fichier.zip")
driver.find_element(By.LINK_TEXT, "Télécharger").click()
Conclusion
Avec Selenium et Python, vous pouvez facilement automatiser des tâches fastidieuses sur le web, comme la recherche d’informations, le remplissage de formulaires, ou l’extraction de données. Cette bibliothèque est un outil incontournable pour le scraping éthique, l’automatisation des tests web, ou encore la création de robots interactifs.