Навіщо потрібна команда Find Element / s?
Взаємодія з веб-сторінкою вимагає від користувача пошуку веб-елемента. Команда Find Element використовується для однозначної ідентифікації (одного) веб-елемента на веб-сторінці. Тоді як команда «Знайти елементи» використовується для однозначного визначення списку веб-елементів на веб-сторінці. Існує декілька способів однозначно ідентифікувати веб-елемент на веб-сторінці, такий як ідентифікатор, ім’я, назва класу, текст посилання, текст часткового посилання, назва тегу та XPATH
Синтаксис команди FindElement:
Команда Selenium Find Element приймає в якості параметра об'єкт By і повертає об'єкт списку типів WebElement у Selenium. По об'єкту, в свою чергу, можна використовувати різні стратегії локатора, такі як пошук елемента за ідентифікатором Selenium, ім'я, ім'я класу, XPATH тощо. Нижче наведено синтаксис команди FindElement у веб-драйвері Selenium.
WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));
Стратегія локатора може мати будь-яке з наступних значень.
- Посвідчення особи
- Елемент пошуку селену за назвою
- Назва класу
- Назва тегу
- Текст посилання
- Текст часткового посилання
- XPATH
Locator Value - це унікальне значення, за допомогою якого можна ідентифікувати веб-елемент. Розробники та тестувальники несуть відповідальність за те, щоб веб-елементи можна було ідентифікувати за допомогою певних властивостей, таких як ідентифікатор або ім’я.
Приклад:
WebElement loginLink = driver.findElement (By.linkText ("Вхід"));
Синтаксис команди FindElements:
Команда FindElements у Selenium приймає за об'єкт як параметр і повертає список веб-елементів. Він повертає порожній список, якщо за допомогою заданої стратегії локатора та значення локатора не знайдено елементів. Нижче наведено синтаксис команди find elements.
СписокelementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));
Приклад:
ListlistOfElements = driver.findElements (By.xpath ("// div"));
Знайти елемент Vs Знайти елементи
Нижче наведені основні відмінності між командами find element та find elements.
Знайти елемент | Знайти елементи |
---|---|
Повертає перший найбільш веб-елемент, якщо в одному локаторі знайдено кілька веб-елементів | Повертає список веб-елементів |
Викидає виняток NoSuchElementException, якщо немає елементів, що відповідають стратегії локатора | Повертає порожній список, якщо немає веб-елементів, що відповідають стратегії локатора |
Знайти елемент XPath знайде лише один веб-елемент | Він знайде колекцію елементів, які відповідають стратегії локатора. |
Не застосовується | Кожен веб-елемент індексується числом, що починається з 0, як масив |
Приклад: Як використовувати команду Find Element
Наступна програма використовується для демонстраційних цілей
http://demo.guru99.com/test/ajax.html
Сценарій:
1. Відкрийте AUT
2. Знайдіть і клацніть перемикач
пакет com.sample.stepdefinitions;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.chrome.ChromeDriver;публічний клас NameDemo {public static void main (String [] args) {// Автоматично згенерований заглушок TODOSystem.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 ("перевірка кнопки")). click ();}}
Приклад: Як використовувати команду "Знайти елементи"
Сценарій:
1. Відкрийте URL-адресу тестованої програми
2. Знайдіть текст перемикачів та роздрукуйте його на вихідній консолі
пакет com.sample.stepdefinitions;імпортувати java.util.List;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.openqa.selenium.chrome.ChromeDriver;публічний клас 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 ("ім'я"));System.out.println ("Кількість елементів: + elements.size ());for (int i = 0; i Короткий зміст:
- Команда "Знайти елемент" повертає веб-елемент, який відповідає першому елементу на веб-сторінці.
- Команда "Знайти елементи" повертає список веб-елементів, які відповідають критеріям.
- Знайти елемент за допомогою XPath у команді Selenium кидає NoSuchElementException, якщо не знаходить елемента, що відповідає критеріям.
- Команда Find Elements повертає порожній список у Selenium, якщо немає елементів, що відповідають критеріям