Titre : Automatiser des tâches avec Selenium et Python


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.

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *