Знайдіть Element і FindElements за допомогою XPath у Selenium WebDriver

Зміст:

Anonim

Навіщо потрібна команда 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"));

Приклад:

List  listOfElements = driver.findElements (By.xpath ("// div"));

Знайти елемент Vs Знайти елементи

Нижче наведені основні відмінності між командами find element та find elements.

Знайти елемент Vs Знайти елементи в селені
Знайти елемент Знайти елементи
Повертає перший найбільш веб-елемент, якщо в одному локаторі знайдено кілька веб-елементів Повертає список веб-елементів
Викидає виняток 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, якщо немає елементів, що відповідають критеріям