Encontre Elemento e FindElements por XPath no Selenium WebDriver

Índice:

Anonim

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.

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

Exemplo:

List  listOfElements = 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 Vs Encontre os elementos no Selênio
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");List  elements = 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