Référence API Selenium
La puissance de Selenium réside dans sa simulation complète des actions humaines. Ce chapitre présente les méthodes les plus couramment utilisées pour interagir avec les pages Web de manière stable.
1. Localisation d'éléments (Locators)
Dans Selenium 4, nous utilisons principalement la classe By pour localiser les éléments.
python
from selenium.webdriver.common.by import By
# Par ID
element = driver.find_element(By.ID, "login-button")
# Par Nom
element = driver.find_element(By.NAME, "username")
# Par Sélecteur CSS
element = driver.find_element(By.CSS_SELECTOR, ".submit-btn")
# Par XPATH (Le plus flexible)
element = driver.find_element(By.XPATH, "//button[text()='Confirmer']")2. Interactions de base
python
# Cliquer
element.click()
# Saisir du texte
element.send_keys("mon_compte_utilisateur")
# Effacer le texte
element.clear()
# Obtenir le texte de l'élément
print(element.text)3. Mécanismes d'attente (Crucial pour la stabilité)
N'utilisez pas time.sleep() autant que possible. Utilisez l'Attente Explicite pour attendre qu'une condition spécifique soit remplie.
python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Attendre que l'élément soit cliquable (jusqu'à 10 secondes)
wait = WebDriverWait(driver, 10)
submit_btn = wait.until(EC.element_to_be_clickable((By.ID, "submit")))
submit_btn.click()4. Exécuter du JavaScript côté navigateur
Parfois, nous devons contourner Selenium et exécuter directement du JS (ex : défiler la page, modifier des attributs cachés).
python
# Faire défiler vers le bas de la page
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Obtenir une valeur complexe
user_agent = driver.execute_script("return navigator.userAgent;")5. Gestion des fenêtres et des cadres (Frames)
python
# Passer à une IFrame
driver.switch_to.frame("iframe_id")
# Revenir au contenu principal
driver.switch_to.default_content()
# Faire une capture d'écran
driver.save_screenshot("ma_capture.png")TIP
Vous maîtrisez ces méthodes ? Le chapitre suivant Exemples de scripts réels vous montrera comment combiner ces API pour réaliser une automatisation complexe de bout en bout.
