FindElements en Selenium – FindElement 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"));

El comando Selenium Find Element toma el objeto Por como parámetro y devuelve un objeto de lista de tipo 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 el controlador web Selenium.

La estrategia de localización puede ser cualquiera de las siguienteswing valores.

  • ID
  • Selenio 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: encontrar elemento en selenio

El following La 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"));

El comando FindElements en Selenium 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 selenio

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 versus buscar elementos
Buscar elemento Vs Buscar elementos en Selenium
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.

Resumen

  • 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.
  • El comando Buscar elemento por XPath en Selenium arroja 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