Зачем вам нужна команда 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"));
Найти элемент против поиска элементов
Ниже приведены основные различия между командами поиска элементов и поиска элементов.
Найти элемент | Найти элементы |
---|---|
Возвращает первый самый веб-элемент, если обнаружено несколько веб-элементов с одним и тем же локатором. | Возвращает список веб-элементов |
Выдает исключение 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, если нет элементов, соответствующих критериям