Sélecteurs Selenium : trouver l'élément que vous voulez
Chaque test UI commence pareil : pointer quelque chose sur la page, puis faire quelque chose dessus. Cette leçon porte entièrement sur la partie « pointer ». C'est plus simple qu'il n'y paraît.
L'idée, en une ligne
Un sélecteur est votre façon de dire au navigateur quel élément vous voulez. Selenium les atteint tous à travers une seule classe appelée By.
Comment l'appeler
Utilisez driver.find_element(By.X, "value") pour une seule correspondance. Utilisez driver.find_elements(...) (notez le s) pour une liste. Si rien ne correspond, la version liste renvoie juste une liste vide — elle ne plante pas.
Selenium 4 vous donne huit façons de pointer un élément :
By.ID— le plus rapide et le plus propre, quand l'élément en a unBy.NAME— correspond à l'attributname, courant sur les champs de formulaireBy.CSS_SELECTOR— couvre la plupart des vrais cas et se lit plus facilement que XPathBy.XPATH— le puissant, pour quand vous devez sélectionner par texte visible ou remonter à un parentBy.CLASS_NAME,By.TAG_NAME,By.LINK_TEXT,By.PARTIAL_LINK_TEXT— le reste, pour des tâches plus étroites
Voyez-le à l'œuvre
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.saucedemo.com/")
# One element, found by its name attribute
driver.find_element(By.NAME, "user-name").send_keys("standard_user")
driver.find_element(By.NAME, "password").send_keys("secret_sauce")
# A CSS selector aimed at a stable test hook
driver.find_element(By.CSS_SELECTOR, "[data-test='login-button']").click()
# find_elements gives a list -> handy for counting
items = driver.find_elements(By.CLASS_NAME, "inventory_item")
print(len(items), "products listed")
driver.quit()Lisez-le de haut en bas : ouvrez un navigateur, trouvez chaque champ, tapez dedans, cliquez sur login, puis comptez les produits. Chaque étape commence par localiser un élément.
Avancé — choisissez des sélecteurs qui survivent à une refonte
Préférez des points d'accroche stables et compréhensibles par un humain. By.ID est le meilleur quand il existe. By.CSS_SELECTOR gère la plupart du reste. Ne prenez By.XPATH que quand vous en avez vraiment besoin.
Basé sur la doc officielle Selenium (Python) — WebDriver Locators
Toutes les leçons de Automatisation UI : Selenium + Playwright + pytest
- Sélecteurs Selenium : trouver l'élément que vous voulez
- Attentes, actions & frames — tuer l'instabilité à la source
- Playwright : attente automatique, sélecteurs & tracing
- pytest en profondeur : fixtures, conftest, parametrize & marqueurs
- Le Page Object Model, fait correctement
- Les cas difficiles : éléments dynamiques, iframes, uploads & simulation réseau