FindElements em Selenium – FindElement por XPath

Por que você precisa do comando Localizar Elemento(s)?

A interação com uma página da web exige que o usuário localize o elemento da web. O comando Localizar elemento é usado para identificar exclusivamente um (um) elemento da web na página da web. Considerando que o comando Localizar Elementos é usado para identificar exclusivamente a lista de elementos da web na página da web. Existem várias maneiras de identificar exclusivamente um elemento da web na página da web, como ID, nome, nome da classe, texto do link, texto do link parcial, nome da tag e XPATH.

Sintaxe do comando FindElement

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

O comando Selenium Find Element recebe o objeto By como parâmetro e retorna um objeto do tipo list WebElement no Selenium. Por objeto, por sua vez, pode ser usado com várias estratégias de localização, como localizar elemento por ID Selenium, Nome, Nome de classe, XPATH etc. Abaixo está a sintaxe do comando FindElement no driver web Selenium.

A estratégia do localizador pode ser qualquer uma das seguinteswing valores.

  • ID
  • Selenium encontra elemento por nome
  • Nome da classe
  • Nome da Tag
  • link Text
  • Texto do link parcial
  • XPATH

Valor do localizador é o valor exclusivo com o qual um elemento da web pode ser identificado. É responsabilidade dos desenvolvedores e testadores garantir que os elementos da web sejam identificáveis ​​exclusivamente usando certas propriedades, como ID ou nome.

Exemplo:

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

Exemplo: Encontre o Elemento no Selenium

O seguintewing o aplicativo é usado para fins de demonstração

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

Cenário:

- Abra o AUT

- Encontre e clique no botão de opção

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

}

}

Sintaxe do comando FindElements

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

O comando FindElements in Selenium recebe By object como parâmetro e retorna uma lista de elementos da web. Ele retorna uma lista vazia se nenhum elemento for encontrado usando a estratégia de localizador e o valor de localizador fornecidos. Abaixo está a sintaxe do comando localizar elementos.

Exemplo:

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

Exemplo: Encontre Elementos no Selenium

Cenário:

- Abra o URL do aplicativo em teste

- Encontre o texto dos botões de opção e imprima-o no console de saída

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

Encontrar elemento versus encontrar elementos

Abaixo estão as principais diferenças entre os comandos localizar elemento e localizar elementos.

Encontrar elemento versus encontrar elementos
Encontrar elemento Vs Encontrar elementos no Selenium
Encontrar Elemento Encontre elementos
Retorna o primeiro elemento da web se houver vários elementos da web encontrados com o mesmo localizador Retorna uma lista de elementos da web
Lança a exceção NoSuchElementException se não houver elementos que correspondam à estratégia do localizador Retorna uma lista vazia se não houver elementos da web que correspondam à estratégia do localizador
Encontrar elemento por XPath encontrará apenas um elemento da web Ele encontrará uma coleção de elementos que correspondam à estratégia do localizador.
Não Aplicável Cada elemento da Web é indexado com um número começando em 0, assim como um array

Resumo

  • O comando Localizar elemento retorna o elemento da web que corresponde ao primeiro elemento da página da web.
  • O comando Localizar Elementos retorna uma lista de elementos da web que correspondem aos critérios.
  • O comando Localizar elemento por XPath no Selenium lança NoSuchElementException se não encontrar o elemento que corresponde aos critérios.
  • O comando Encontrar Elementos retorna uma lista vazia no Selenium se não houver elementos que correspondam aos critérios