FindElement por XPath em Selenium
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"));
Selenium O comando Find Element recebe o objeto By como parรขmetro e retorna um objeto do tipo list WebElement em 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 da classe, XPATH etc. Abaixo estรก a sintaxe do comando FindElement em Selenium motorista web.
A estratรฉgia do localizador pode ser qualquer um dos valores a seguir.
- ID
- Selenium encontrar 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: Localizar elemento em Selenium
O aplicativo a seguir รฉ usado para fins de demonstraรงรฃo
https://demo.guru99.com/test/ajax.html
Cenรกrio:
Passo 1: Abra o AUT
Passo 2: 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("https://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"));
EncontrarElementos em Selenium O comando 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 em Selenium
Cenรกrio:
Passo 1: Abra o URL do aplicativo em teste
Passo 1: 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("https://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 | 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.
- Encontre o elemento por XPath em Selenium O comando lanรงa NoSuchElementException se nรฃo encontrar o elemento que corresponde aos critรฉrios.
- O comando Localizar Elementos retorna uma lista vazia em Selenium se nรฃo houver elementos que correspondam aos critรฉrios
