Buscar elementos en Selenium – BuscarElemento por XPath
¿Por qué necesita el comando Buscar elemento(s)?
La interacción con una página web requiere que el usuario ubique el elemento web. El comando Buscar elemento se utiliza para identificar de forma única un (un) elemento web dentro de la página web. Mientras que el comando Buscar elementos se utiliza para identificar de forma única la lista de elementos web dentro de la página web. Hay varias formas de identificar de forma única un elemento web dentro de la página web, como ID, nombre, nombre de clase, texto de enlace, texto de enlace parcial, nombre de etiqueta y XPATH.
Sintaxis del comando BuscarElemento
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium El comando Buscar elemento toma el objeto Por como parámetro y devuelve un objeto de tipo lista WebElement en Selenium. Por objeto, a su vez, se puede utilizar con varias estrategias de localización, como buscar elemento por ID. Selenium, Nombre, Nombre de clase, XPATH, etc. A continuación se muestra la sintaxis del comando FindElement en Selenium controlador web.
La estrategia de localización puede ser cualquiera de los siguientes valores.
- ID
- Selenium buscar elemento por nombre
- Nombre de la clase
- Nombre de etiqueta
- Texto del enlace
- Texto de enlace parcial
- XPATH
El valor del localizador es el valor único mediante el cual se puede identificar un elemento web. Es responsabilidad de los desarrolladores y evaluadores asegurarse de que los elementos web sean identificables de forma única mediante determinadas propiedades, como ID o nombre.
Ejemplo:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Ejemplo: buscar elemento en Selenium
La siguiente aplicación se utiliza con fines de demostración.
http://demo.guru99.com/test/ajax.html
Escenario:
Paso 1: Abrir la AUT
Paso 2: Busque y haga clic en el botón de opción
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(); } }
Sintaxis del comando BuscarElementos
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
Buscar elementos en Selenium El comando toma Por objeto como parámetro y devuelve una lista de elementos web. Devuelve una lista vacía si no se encuentran elementos utilizando la estrategia de localizador y el valor de localizador dados. A continuación se muestra la sintaxis del comando buscar elementos.
Ejemplo:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Ejemplo: buscar elementos en Selenium
Escenario:
Paso 1: Abra la URL de la aplicación bajo prueba
Paso 1: Busque el texto de los botones de radio e imprímalo en la consola de salida
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")); } } }
Buscar elemento Vs Buscar elementos
A continuación se detallan las principales diferencias entre los comandos buscar elemento y buscar elementos.
Buscar elemento | Buscar elementos |
---|---|
Devuelve el primer elemento web si se encuentran varios elementos web con el mismo localizador | Devuelve una lista de elementos web. |
Lanza la excepción NoSuchElementException si no hay elementos que coincidan con la estrategia del localizador. | Devuelve una lista vacía si no hay elementos web que coincidan con la estrategia del localizador |
Buscar elemento por XPath solo encontrará un elemento web | Encontrará una colección de elementos que coincidan con la estrategia del localizador. |
No aplicable | Cada elemento web está indexado con un número que comienza en 0, como una matriz. |
Resum
- El comando Buscar elemento devuelve el elemento web que coincide con el primer elemento dentro de la página web.
- El comando Buscar elementos devuelve una lista de elementos web que coinciden con los criterios.
- Buscar elemento por XPath en Selenium El comando lanza NoSuchElementException si no encuentra el elemento que coincida con los criterios.
- El comando Buscar elementos devuelve una lista vacía en Selenium si no hay elementos que coincidan con los criterios