Automatisation UI : Selenium + Playwright + pytest · Leçon 1 sur 6

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.

Par Shahriyar · Mis à jour

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 :

Voyez-le à l'œuvre

▸ try it
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

  1. Sélecteurs Selenium : trouver l'élément que vous voulez
  2. Attentes, actions & frames — tuer l'instabilité à la source
  3. Playwright : attente automatique, sélecteurs & tracing
  4. pytest en profondeur : fixtures, conftest, parametrize & marqueurs
  5. Le Page Object Model, fait correctement
  6. Les cas difficiles : éléments dynamiques, iframes, uploads & simulation réseau