FindElement по XPath в Selenium
Зачем вам нужна команда «Найти элемент(ы)»?
Взаимодействие с веб-страницей требует от пользователя найти веб-элемент. Команда «Найти элемент» используется для уникальной идентификации (одного) веб-элемента на веб-странице. Принимая во внимание, что команда «Найти элементы» используется для уникальной идентификации списка веб-элементов на веб-странице. Существует несколько способов уникальной идентификации веб-элемента на веб-странице, таких как идентификатор, имя, имя класса, текст ссылки, текст частичной ссылки, имя тега и XPATH.
Синтаксис команды FindElement
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Команда «Найти элемент» принимает объект By в качестве параметра и возвращает объект списка типов 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: Откройте АВТО
Шаг 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"));
НайтиЭлементы в Selenium Команда принимает параметр By object и возвращает список веб-элементов. Он возвращает пустой список, если не найдено ни одного элемента с использованием данной стратегии локатора и значения локатора. Ниже приведен синтаксис команды поиска элементов.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
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")); } } }
Найти элемент против Найти элементы
Ниже приведены основные различия между командами find element и find elements.
Найти элемент | Найти элементы |
---|---|
Возвращает первый веб-элемент, если по одному и тому же локатору найдено несколько веб-элементов. | Возвращает список веб-элементов |
Выдает исключение NoSuchElementException, если нет элементов, соответствующих стратегии локатора. | Возвращает пустой список, если нет веб-элементов, соответствующих стратегии локатора. |
Найти элемент по XPath найдет только один веб-элемент | Он найдет коллекцию элементов, соответствующих стратегии локатора. |
Не применимо | Каждый веб-элемент индексируется номером, начинающимся с 0, как и массив. |
Резюме
- Команда «Найти элемент» возвращает веб-элемент, соответствующий первому элементу на веб-странице.
- Команда «Найти элементы» возвращает список веб-элементов, соответствующих критериям.
- Найти элемент по XPath в Selenium Команда выдает NoSuchElementException, если не находит элемент, соответствующий критериям.
- Команда «Найти элементы» возвращает пустой список в Selenium если нет элементов, соответствующих критериям