Sobes.tech
Junior

Quels sont les localisateurs dans Selenium?

sobes.tech IA

Réponse de l'IA

Les localisateurs dans Selenium sont des mécanismes pour rechercher des éléments web sur la page. Les principaux types de localisateurs :

  • ID : Permet de trouver un élément par son attribut id. La méthode la plus rapide et fiable, si l'ID est unique et stable.
  • Name : Permet de trouver un élément par son attribut name. Moins fiable que l'ID, car name n'est pas toujours unique.
  • Class Name : Permet de trouver des éléments par leur attribut class. Renvoie une liste d'éléments, car plusieurs éléments peuvent avoir la même classe.
  • Tag Name : Permet de trouver des éléments par le nom de la balise HTML (par exemple, div, a, input). Renvoie une liste d'éléments.
  • Link Text : Permet de trouver un élément <a> (lien) par le texte exact du lien.
  • Partial Link Text : Permet de trouver un élément <a> (lien) par correspondance partielle du texte du lien.
  • CSS Selector : Méthode puissante et flexible pour rechercher des éléments en utilisant la syntaxe des sélecteurs CSS. Permet de rechercher par combinaison d'attributs, de balises, de classes, de hiérarchie et d'états.
  • XPath : La méthode la plus puissante et flexible pour rechercher des éléments, basée sur la navigation dans la structure du document XML/HTML. Permet de construire des chemins complexes vers les éléments, de rechercher par attributs, contenu et position.

Exemples d'utilisation :

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

Le choix du localisateur dépend de la stabilité de l'élément web et de la structure de la page. Il est recommandé d'utiliser ID, CSS Selector ou XPath lorsque leur construction est correcte.