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"));
    }
  }
}

Знайти елемент проти Знайти елементи

Нижче наведено основні відмінності між командами пошуку елемента та пошуку елементів.

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

Підсумки

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