Защо се нуждаете от командата 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.

Намери елемент | Намерете елементи |
---|---|
Връща първия най-уеб елемент, ако са намерени множество уеб елементи с един и същ локатор | Връща списък с уеб елементи |
Изхвърля изключение 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, ако няма елементи, отговарящи на критериите