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 | 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