Найти элемент и найти элементы с помощью XPath в Selenium WebDriver

Содержание:

Anonim

Зачем вам нужна команда Find Element / s?

Взаимодействие с веб-страницей требует, чтобы пользователь нашел веб-элемент. Команда «Найти элемент» используется для однозначной идентификации (одного) веб-элемента на веб-странице. В то время как команда «Найти элементы» используется для однозначной идентификации списка веб-элементов на веб-странице. Существует несколько способов однозначно идентифицировать веб-элемент на веб-странице, например ID, имя, имя класса, текст ссылки, текст частичной ссылки, имя тега и XPATH.

Синтаксис команды FindElement:

Команда Selenium Find Element принимает объект By в качестве параметра и возвращает объект типа list WebElement в Selenium. По объекту, в свою очередь, может использоваться с различными стратегиями локатора, такими как поиск элемента по идентификатору Selenium, имени, имени класса, XPATH и т. Д. Ниже приведен синтаксис команды FindElement в веб-драйвере Selenium.

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

Стратегия локатора может иметь любое из следующих значений.

  • Я БЫ
  • Селен найти элемент по имени
  • Имя класса
  • Название тэга
  • Текст ссылки
  • Частичный текст ссылки
  • XPATH

Значение локатора - это уникальное значение, с помощью которого можно идентифицировать веб-элемент. Разработчики и тестировщики несут ответственность за уникальную идентификацию веб-элементов с помощью определенных свойств, таких как идентификатор или имя.

Пример:

WebElement loginLink = driver.findElement (By.linkText ("Логин"));

Синтаксис команды FindElements:

Команда FindElements в Selenium принимает объект By в качестве параметра и возвращает список веб-элементов. Он возвращает пустой список, если не было найдено никаких элементов с использованием данной стратегии локатора и значения локатора. Ниже приведен синтаксис команды поиска элементов.

Список  elementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Пример:

Список  listOfElements = driver.findElements (By.xpath ("// div"));

Найти элемент против поиска элементов

Ниже приведены основные различия между командами поиска элементов и поиска элементов.

Найти элемент Vs Найти элементы в Selenium
Найти элемент Найти элементы
Возвращает первый самый веб-элемент, если обнаружено несколько веб-элементов с одним и тем же локатором. Возвращает список веб-элементов
Выдает исключение NoSuchElementException, если нет элементов, соответствующих стратегии локатора Возвращает пустой список, если нет веб-элементов, соответствующих стратегии локатора.
Найти элемент с помощью XPath найдет только один веб-элемент Он найдет набор элементов, соответствующих стратегии локатора.
Непригодный Каждый веб-элемент индексируется числом, начиная с 0, как и массив.

Пример: как использовать команду "Найти элемент"

Следующее приложение используется в демонстрационных целях

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

Сценарий:

1. Откройте AUT

2. Найдите и установите переключатель

пакет 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 Заглушка автоматически сгенерированного методаSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Драйвер WebDriver = новый ChromeDriver ();driver.manage (). window (). maximize ();driver.get ("http://demo.guru99.com/test/ajax.html");// Находим переключатель для «Нет» по его идентификатору и нажимаем на негоdriver.findElement (By.id ("нет")). click ();// Нажимаем на кнопку "Проверить"driver.findElement (By.id ("buttoncheck")). click ();}}

Пример: как использовать команду "Найти элементы"

Сценарий:

1. Откройте URL-адрес тестируемого приложения.

2. Найдите текст переключателей и распечатайте его на консоли вывода.

пакет 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 = новый ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Список элементов  = driver.findElements (By.name ("name"));System.out.println ("Количество элементов: + elements.size ());for (int i = 0; i 

Резюме:

  • Команда «Найти элемент» возвращает веб-элемент, который соответствует первому наибольшему элементу на веб-странице.
  • Команда «Найти элементы» возвращает список веб-элементов, соответствующих критериям.
  • Команда «Найти элемент по XPath в Selenium» выдает исключение NoSuchElementException, если не находит элемент, соответствующий критериям.
  • Команда Найти элементы возвращает пустой список в Selenium, если нет элементов, соответствующих критериям