Rechercher des éléments dans Selenium – FindElement par XPath

Pourquoi avez-vous besoin de la commande Rechercher un ou plusieurs éléments ?

L'interaction avec une page Web nécessite qu'un utilisateur localise l'élément Web. La commande Rechercher un élément est utilisée pour identifier de manière unique un (un) élément Web dans la page Web. Tandis que la commande Rechercher des éléments est utilisée pour identifier de manière unique la liste des éléments Web dans la page Web. Il existe plusieurs façons d'identifier de manière unique un élément Web dans la page Web, par exemple l'ID, le nom, le nom de classe, le texte du lien, le texte du lien partiel, le nom de la balise et XPATH.

Syntaxe de la commande FindElement

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

Selenium La commande Rechercher un élément prend l'objet By comme paramètre et renvoie un objet de type list WebElement dans Selenium. Par objet, à son tour, peut être utilisé avec diverses stratégies de localisation telles que la recherche d'un élément par ID. Selenium, Nom, Nom de classe, XPATH, etc. Vous trouverez ci-dessous la syntaxe de la commande FindElement dans Selenium pilote Web.

La stratégie de localisation peut avoir l’une des valeurs suivantes.

  • ID
  • Selenium rechercher un élément par nom
  • Nom du cours
  • Nom de la balise
  • link Text
  • Texte de lien partiel
  • XPATH

La valeur de localisation est la valeur unique à l'aide de laquelle un élément Web peut être identifié. Il est de la responsabilité des développeurs et des testeurs de s'assurer que les éléments Web sont identifiables de manière unique à l'aide de certaines propriétés telles que l'ID ou le nom.

Mise en situation :

WebElement loginLink = driver.findElement(By.linkText("Login"));

Exemple : Rechercher un élément dans Selenium

L'application suivante est utilisée à des fins de démonstration

http://demo.guru99.com/test/ajax.html

Scénario:

Étape 1: Ouvrez l'AUT

Étape 2: Recherchez et cliquez sur le bouton radio

package com.sample.stepdefinitions;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class NameDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub

System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();

driver.get("http://demo.guru99.com/test/ajax.html");

// Find the radio button for “No” using its ID and click on it
driver.findElement(By.id("no")).click();
	
//Click on Check Button
driver.findElement(By.id("buttoncheck")).click();

}

}

Syntaxe de la commande FindElements

List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));

Rechercher des éléments dans Selenium La commande prend By object comme paramètre et renvoie une liste d’éléments Web. Il renvoie une liste vide si aucun élément n'est trouvé en utilisant la stratégie de localisateur et la valeur de localisateur données. Vous trouverez ci-dessous la syntaxe de la commande Rechercher des éléments.

Mise en situation :

List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));

Exemple : Rechercher des éléments dans Selenium

Scénario:

Étape 1: Ouvrez l'URL de l'application en cours de test

Étape 1: Recherchez le texte des boutons radio et imprimez-le sur la console de sortie

package com.sample.stepdefinitions;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class NameDemo {

public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("http://demo.guru99.com/test/ajax.html");
    List<WebElement> elements = driver.findElements(By.name("name"));
    System.out.println("Number of elements:" +elements.size());

    for (int i=0; i<elements.size();i++){
      System.out.println("Radio button text:" + elements.get(i).getAttribute("value"));
    }
  }
}

Rechercher un élément Vs Rechercher des éléments

Vous trouverez ci-dessous les principales différences entre les commandes find element et find elements.

Rechercher un élément ou rechercher des éléments
Rechercher un élément vs Rechercher des éléments dans Selenium
Rechercher un élément Rechercher des éléments
Renvoie le premier élément Web le plus important si plusieurs éléments Web sont trouvés avec le même localisateur Renvoie une liste d'éléments Web
Lève l'exception NoSuchElementException s'il n'y a aucun élément correspondant à la stratégie de localisation Renvoie une liste vide s'il n'y a aucun élément Web correspondant à la stratégie de localisation
Rechercher un élément par XPath ne trouvera qu'un seul élément Web Il trouvera une collection d'éléments qui correspondent à la stratégie de localisation.
Non applicable Chaque élément Web est indexé avec un numéro commençant à 0 tout comme un tableau

Résumé

  • La commande Rechercher un élément renvoie l'élément Web qui correspond au premier élément de la page Web.
  • La commande Rechercher des éléments renvoie une liste d'éléments Web qui correspondent aux critères.
  • Rechercher un élément par XPath dans Selenium La commande lève NoSuchElementException si elle ne trouve pas l'élément correspondant aux critères.
  • La commande Rechercher des éléments renvoie une liste vide dans Selenium s'il n'y a aucun élément correspondant aux critères