FindElement за допомогою XPath у Selenium
Для чого потрібна команда «Знайти елементи»?
Взаємодія з веб-сторінкою вимагає, щоб користувач знайшов веб-елемент. Команда «Знайти елемент» використовується для унікальної ідентифікації (одного) веб-елемента на веб-сторінці. Тоді як команда «Знайти елементи» використовується для унікальної ідентифікації списку веб-елементів на веб-сторінці. Існує кілька способів унікальної ідентифікації веб-елемента на веб-сторінці, наприклад ID, ім’я, ім’я класу, текст посилання, частковий текст посилання, ім’я тегу та XPATH.
Синтаксис команди FindElement
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Команда Find Element приймає об’єкт By як параметр і повертає об’єкт типу list WebElement Selenium. За об’єктом, у свою чергу, можна використовувати з різними стратегіями пошуку, такими як пошук елемента за ідентифікатором Selenium, ім’я, ім’я класу, XPATH тощо. Нижче наведено синтаксис команди FindElement у Selenium веб-драйвер.
Стратегія локатора може мати будь-яке з наведених нижче значень.
- ID
- Selenium знайти елемент за назвою
- Назва класу
- Назва тегу
- текст посилання
- Частковий текст посилання
- XPATH
Значення локатора – це унікальне значення, за допомогою якого можна ідентифікувати веб-елемент. Відповідальність розробників і тестувальників полягає в тому, щоб переконатися, що веб-елементи можна унікально ідентифікувати за допомогою певних властивостей, таких як ідентифікатор або ім’я.
приклад:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Приклад: знайти елемент у Selenium
Наступна програма використовується для демонстраційних цілей
https://demo.guru99.com/test/ajax.html
Сценарій:
Крок 1: Відкрийте AUT
Крок 2: Знайдіть і натисніть перемикач
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 Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://demo.guru99.com/test/ajax.html");
// Find the radio button for “No” using its ID and click on it
driver.findElement(By.id("no")).click();
//Click on Check Button
driver.findElement(By.id("buttoncheck")).click();
}
}
Синтаксис команди FindElements
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
FindElements в Selenium Команда приймає об’єкт By як параметр і повертає список веб-елементів. Він повертає порожній список, якщо немає елементів, знайдених за допомогою даної стратегії локатора та значення локатора. Нижче наведено синтаксис команди пошуку елементів.
приклад:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Приклад: знайти елементи в Selenium
Сценарій:
Крок 1: Відкрийте URL-адресу програми, що тестується
Крок 1: Знайдіть текст радіокнопок і виведіть його на консоль виводу
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");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/ajax.html");
List<WebElement> elements = driver.findElements(By.name("name"));
System.out.println("Number of elements:" +elements.size());
for (int i=0; i<elements.size();i++){
System.out.println("Radio button text:" + elements.get(i).getAttribute("value"));
}
}
}
Знайти елемент проти Знайти елементи
Нижче наведено основні відмінності між командами пошуку елемента та пошуку елементів.

| Знайти елемент | Знайти елементи |
|---|---|
| Повертає перший веб-елемент, якщо знайдено кілька веб-елементів з тим самим локатором | Повертає список веб-елементів |
| Викидає виняток NoSuchElementException, якщо немає елементів, що відповідають стратегії локатора | Повертає порожній список, якщо немає веб-елементів, що відповідають стратегії пошуку |
| Знайти елемент за допомогою XPath знайде лише один веб-елемент | Він знайде набір елементів, які відповідають стратегії локатора. |
| Не застосовується | Кожен веб-елемент індексується числом, починаючи з 0, як масив |
Резюме
- Команда «Знайти елемент» повертає веб-елемент, який відповідає першому найбільшому елементу на веб-сторінці.
- Команда «Знайти елементи» повертає список веб-елементів, які відповідають критеріям.
- Знайти елемент за XPath в Selenium команда викидає NoSuchElementException, якщо не знаходить елемент, який відповідає критеріям.
- Команда «Знайти елементи» повертає порожній список Selenium якщо немає елементів, що відповідають критеріям
