Намерете Element и FindElements от XPath в Selenium WebDriver

Съдържание:

Anonim

Защо се нуждаете от командата Find Element / s?

Взаимодействието с уеб страница изисква потребителят да намери уеб елемента. Командата Find Element се използва за еднозначно идентифициране на (един) уеб елемент в уеб страницата. Докато командата Find Elements се използва за еднозначно идентифициране на списъка с уеб елементи в уеб страницата. Има няколко начина за уникално идентифициране на уеб елемент в уеб страницата, като например ID, име, име на клас, текст на връзка, текст на частична връзка, име на етикет и XPATH.

FindElement синтаксис на командата:

Командата Selenium Find Element приема обекта By като параметър и връща обект от списък с типове WebElement в Selenium. От обект на свой ред може да се използва с различни стратегии за локатор, като например намиране на елемент чрез ID Selenium, Name, Class Name, XPATH и др.

WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));

Стратегията за локатор може да бъде всяка от следните стойности.

  • документ за самоличност
  • Намиране на елемент от селен по име
  • Име на класа
  • Име на маркера
  • Текст на връзката
  • Текст на частична връзка
  • XPATH

Locator Value е уникалната стойност, чрез която може да се идентифицира уеб елемент. Отговорност на разработчиците и тестерите е да се уверят, че уеб елементите могат да бъдат идентифицирани по уникален начин, като се използват определени свойства като ID или име.

Пример:

WebElement loginLink = driver.findElement (By.linkText ("Login"));

FindElements синтаксис на командата:

Командата FindElements в Selenium приема параметър By object и връща списък с уеб елементи. Той връща празен списък, ако не са намерени елементи, използващи дадената стратегия за локатор и стойност на локатора. По-долу е синтаксисът на командата find elements.

Списък  elementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Пример:

Списък  listOfElements = driver.findElements (By.xpath ("// div"));

Намерете елемент Vs Намерете елементи

По-долу са основните разлики между командите find element и find elements.

Намерете елемент Vs Намерете елементи в Selenium
Намери елемент Намерете елементи
Връща първия най-уеб елемент, ако са намерени множество уеб елементи с един и същ локатор Връща списък с уеб елементи
Изхвърля изключение 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 {публична статична void main (String [] args) {// TODO Автоматично генериран мъниче от методSystem.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 ("no")). click ();// Щракнете върху бутона за проверкаdriver.findElement (By.id ("checkcheck")). click ();}}

Пример: Как да използвам командата Find Elements

Сценарий:

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 {публична статична 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 ("name"));System.out.println ("Брой елементи: + elements.size ());за (int i = 0; i 

Резюме:

  • Командата Find Element връща уеб елемента, който съответства на първия най-голям елемент в уеб страницата.
  • Командата Find Elements връща списък с уеб елементи, които отговарят на критериите.
  • Намиране на елемент от XPath в командата Selenium изхвърля NoSuchElementException, ако не намери елемента, отговарящ на критериите.
  • Командата Find Elements връща празен списък в Selenium, ако няма елементи, отговарящи на критериите