Saltar al contenido

Obtenga Element y FindElements con XPath en Selenium WebDriver

¿Por qué necesita un comando Buscar elemento / s?

La interacción con una página web requiere que el usuario encuentre el elemento web. El comando Buscar elemento se utiliza para identificar de forma exclusiva una función web (solo) en la página web. Debido a esto, 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 una función 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 FindElement:

El comando Selenium Find Element toma el objeto By como parámetro y devuelve un objeto de tipo WebElement en Selenium. A su vez, un objeto se puede utilizar con varias estrategias de localización como elemento de localización con Selenium ID, Nombre, Nombre de clase, XPATH, etc. A continuación se muestra la sintaxis del comando FindElement en el controlador web de Selenium.

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

La estrategia del buscador puede ser cualquiera de los siguientes valores.

  • IDENTIFICACIÓN
  • Oligoelemento de selenio por nombre
  • Nombre de la clase
  • Nombre de etiqueta
  • Texto del enlace
  • Texto de enlace parcial
  • XPATH

Finder Value es el valor único por el cual se puede identificar un elemento web. Es responsabilidad de los desarrolladores y evaluadores asegurarse de que los elementos web identificables únicos utilicen determinadas propiedades, como el ID o el nombre.

Ejemplo:

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

Sintaxis del comando FindElements:

FindElements toma un objeto dirigido por selenio como parámetro y devuelve una lista de elementos web. Devuelve una lista vacía si no se encuentran elementos utilizando la estrategia de búsqueda y se proporciona un valor encontrado. A continuación se muestra la sintaxis para el orden de los elementos encontrados.

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

Ejemplo:

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

Obtener elemento Vs Obtener elementos

A continuación se muestran las principales diferencias entre los comandos de elementos encontrados y los elementos encontrados.

Encontrar elemento Vs Encontrar elementos en Selenium

Encuentra un elementoBuscar elementos
Devuelve el primer elemento web principal si se encuentran varios elementos web con el mismo buscadorSe envía una lista de elementos web
Agregue la excepción NoSuchElementException si no hay elementos que coincidan con la estrategia del buscadorSe devuelve una lista vacía si no hay elementos web que coincidan con la estrategia de búsqueda.
El elemento encontrado con XPath solo encuentra una característica webEncontrará una colección de elementos que se adaptan a la estrategia del buscador.
No aplicaCada elemento web está indexado con un número que comienza desde 0 como una matriz

Ejemplo: cómo utilizar el comando Buscar elemento

La siguiente aplicación se utiliza con fines de demostración.

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

Caso:

1. Abra la AUT

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

}

}

Ejemplo: cómo utilizar el comando Buscar elementos

Caso:

1. Abra la URL de su aplicación probada.

2. Busque el texto de los botones de opción 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"));
    }
  }
}

Resumen:

  • Busque el comando Find Element el elemento web que coincide con el primer elemento más grande de la página web.
  • Obtenga una lista de comandos de Elementos de elementos web que se ajusten a los criterios.
  • Ejecute Buscar un elemento con XPath en el comando selenium NoSuchElementException si no encuentra el elemento que coincide con los criterios.
  • Obtenga una lista vacía de elementos de pedido vacía en Selenium si no hay elementos que se ajusten a los criterios

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *