TrovaElementi in Selenium – FindElement di XPath

Perché è necessario il comando Trova elemento/i?

L'interazione con una pagina web richiede che l'utente individui l'elemento web. Il comando Trova elemento viene utilizzato per identificare in modo univoco un (uno) elemento web all'interno della pagina web. Il comando Trova elementi viene invece utilizzato per identificare in modo univoco l'elenco degli elementi Web all'interno della pagina Web. Esistono diversi modi per identificare in modo univoco un elemento Web all'interno della pagina Web come ID, Nome, Nome classe, Testo collegamento, Testo collegamento parziale, Nome tag e XPATH.

Sintassi del comando FindElement

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

Selenium Il comando Trova elemento accetta l'oggetto By come parametro e restituisce un oggetto di tipo list WebElement in Selenium. Per oggetto a sua volta può essere utilizzato con varie strategie di localizzazione come trova elemento per ID Selenium, Nome, Nome classe, XPATH ecc. Di seguito è riportata la sintassi del comando FindElement in Selenium driver web.

La strategia di localizzazione può assumere uno qualsiasi dei seguenti valori.

  • ID
  • Selenium trova l'elemento per nome
  • Nome della classe
  • Nome tag
  • link Text
  • Testo del collegamento parziale
  • XPATH

Locator Value è il valore univoco utilizzando il quale è possibile identificare un elemento web. È responsabilità degli sviluppatori e dei tester assicurarsi che gli elementi web siano identificabili in modo univoco utilizzando determinate proprietà come ID o nome.

Esempio:

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

Esempio: Trova elemento in Selenium

La seguente applicazione viene utilizzata a scopo dimostrativo

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

Scenario:

Passo 1: Aprire l'AUT

Passo 2: Trova e fai clic sul pulsante di opzione

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();

}

}

Sintassi del comando FindElements

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

TrovaElementi in Selenium Il comando accetta By object come parametro e restituisce un elenco di elementi web. Restituisce un elenco vuoto se non sono stati trovati elementi utilizzando la strategia di localizzazione e il valore di localizzazione specificati. Di seguito è riportata la sintassi del comando trova elementi.

Esempio:

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

Esempio: Trova elementi in Selenium

Scenario:

Passo 1: Apri l'URL dell'applicazione in fase di test

Passo 1: Trova il testo dei pulsanti di opzione e stampalo sulla console di output

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"));
    }
  }
}

Trova elemento Vs Trova elementi

Di seguito sono riportate le principali differenze tra i comandi Trova elemento e Trova elementi.

Trova elemento vs Trova elementi
Trova elemento Vs Trova elementi in Selenium
Trova elemento Trova elementi
Restituisce il primo elemento web se sono presenti più elementi web trovati con lo stesso localizzatore Restituisce un elenco di elementi web
Genera l'eccezione NoSuchElementException se non sono presenti elementi che corrispondono alla strategia di localizzazione Restituisce un elenco vuoto se non sono presenti elementi web che corrispondono alla strategia di localizzazione
Trova elemento tramite XPath troverà solo un elemento Web Troverà una raccolta di elementi che corrispondono alla strategia di localizzazione.
Non Applicabile Ogni elemento Web è indicizzato con un numero che inizia da 0 proprio come un array

Sommario

  • Il comando Trova elemento restituisce l'elemento web che corrisponde al primo elemento all'interno della pagina web.
  • Il comando Trova elementi restituisce un elenco di elementi Web che corrispondono ai criteri.
  • Trova elemento tramite XPath in Selenium Il comando genera NoSuchElementException se non trova l'elemento che corrisponde ai criteri.
  • Il comando Trova elementi restituisce un elenco vuoto in Selenium se non ci sono elementi che soddisfano i criteri