EncontrarElementos 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"));
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:
- 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("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:
- 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("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