Por que você precisa do comando Find Element / s?
A interação com uma página da web requer que o usuário localize o elemento da web. O comando Find Element é usado para identificar exclusivamente um (um) elemento da web dentro da página da web. Considerando que, o comando Find Elements é usado para identificar exclusivamente a lista de elementos da web dentro da página da web. Existem várias maneiras de identificar exclusivamente um elemento da web dentro da 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:
O comando Selenium Find Element considera o objeto By como o parâmetro e retorna um objeto da lista de tipos WebElement no Selenium. Por objeto, por sua vez, pode ser usado com várias estratégias de localizador, como localizar elemento por ID Selenium, Nome, Nome de classe, XPATH etc. Abaixo está a sintaxe do comando FindElement no driver da web Selenium.
WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));
A estratégia do localizador pode ser qualquer um dos seguintes valores.
- EU IA
- Selênio encontrar elemento por nome
- Nome da classe
- Nome da Tag
- Texto do link
- Texto do link parcial
- XPATH
O valor do localizador é o valor único com o qual um elemento da web pode ser identificado. É responsabilidade dos desenvolvedores e testadores garantir que os elementos da web sejam identificáveis de maneira única usando certas propriedades, como ID ou nome.
Exemplo:
WebElement loginLink = driver.findElement (By.linkText ("Login"));
Sintaxe do comando FindElements:
O comando FindElements in Selenium leva By object como o parâmetro e retorna uma lista de elementos da web. Ele retorna uma lista vazia se não houver elementos encontrados usando a estratégia de localizador e valor de localizador fornecidos. Abaixo está a sintaxe do comando find elements.
ListelementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));
Exemplo:
ListlistOfElements = driver.findElements (By.xpath ("// div"));
Encontrar elemento Vs Encontrar elementos
Abaixo estão as principais diferenças entre os comandos find element e find elements.
Encontre o Elemento | Encontrar 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 correspondem à estratégia do localizador. |
Não aplicável | Cada elemento da Web é indexado com um número começando em 0, assim como uma matriz |
Exemplo: como usar o comando Localizar Elemento
O seguinte aplicativo é usado para fins de demonstração
http://demo.guru99.com/test/ajax.html
Cenário:
1. Abra o AUT
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 stub do método gerado automaticamenteSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Driver WebDriver = novo ChromeDriver ();driver.manage (). window (). maximize ();driver.get ("http://demo.guru99.com/test/ajax.html");// Encontre o botão de opção “Não” usando seu ID e clique neledriver.findElement (By.id ("não")). click ();// Clique no botão Verificardriver.findElement (By.id ("buttoncheck")). click ();}}
Exemplo: como usar o comando Localizar Elementos
Cenário:
1. Abra o URL do aplicativo em teste
2. 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");Driver WebDriver = novo ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Listelements = driver.findElements (By.name ("name"));System.out.println ("Número de elementos: + elements.size ());for (int i = 0; i Resumo:
- O comando Find Element retorna o elemento da web que corresponde ao primeiro elemento mais dentro da página da web.
- O comando Find Elements retorna uma lista de elementos da web que correspondem aos critérios.
- Localizar elemento por XPath no comando Selenium lança NoSuchElementException se não encontrar o elemento que corresponde aos critérios.
- O comando Encontrar Elementos devolve uma lista vazia no Selenium se não houver elementos que correspondam aos critérios