Find element og FindElements af XPath i Selenium WebDriver

Indholdsfortegnelse:

Anonim

Hvorfor har du brug for Find Element / s kommando?

Interaktion med en webside kræver, at en bruger finder webelementet. Find element-kommandoen bruges til entydigt at identificere et (et) webelement på websiden. Mens kommandoen Find elementer bruges til entydigt at identificere listen over webelementer på websiden. Der er flere måder til entydigt at identificere et webelement på websiden, såsom ID, navn, klassenavn, linktekst, delvis linktekst, tagnavn og XPATH.

FindElement-kommandosyntaks:

Selen Find Element-kommandoen tager By-objektet ind som parameter og returnerer et objekt af typelisten WebElement i Selenium. Efter objekt kan igen bruges sammen med forskellige lokaliseringsstrategier såsom findelement af ID Selenium, Name, Class Name, XPATH osv. Nedenfor er syntaksen for FindElement-kommandoen i Selenium-webdriver.

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

Locator Strategy kan være en af ​​følgende værdier.

  • ID
  • Selen Find element efter navn
  • Klassens navn
  • Tagnavn
  • Linktekst
  • Delvis linktekst
  • XPATH

Locator Value er den unikke værdi, ved hjælp af hvilken et webelement kan identificeres. Det er udvikleres og testernes ansvar at sikre, at webelementer kan identificeres entydigt ved hjælp af bestemte egenskaber såsom ID eller navn.

Eksempel:

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

FindElements kommandosyntaks:

FindElements in Selenium-kommandoen tager efter objekt som parameter og returnerer en liste over webelementer. Det returnerer en tom liste, hvis der ikke findes nogen elementer ved hjælp af den givne lokaliseringsstrategi og lokaliseringsværdi. Nedenfor er syntaksen for find elements-kommandoen.

Liste  elementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Eksempel:

Liste  listOfElements = driver.findElements (By.xpath ("// div"));

Find element Vs Find elementer

Nedenfor er de største forskelle mellem findelementer og findelementkommandoer.

Find element Vs Find elementer i selen
Find element Find elementer
Returnerer det første mest webelement, hvis der findes flere webelementer med den samme lokalisator Returnerer en liste over webelementer
Kaster undtagelse NoSuchElementException, hvis der ikke er nogen elementer, der matcher lokaliseringsstrategien Returnerer en tom liste, hvis der ikke er nogen webelementer, der matcher lokaliseringsstrategien
Find element af XPath finder kun et webelement Den finder en samling af elementer, der matcher lokaliseringsstrategien.
Ikke anvendelig Hvert webelement indekseres med et tal, der starter fra 0, ligesom et array

Eksempel: Sådan bruges kommandoen Find element

Følgende applikation bruges til demo-formål

http://demo.guru99.com/test/ajax.html

Scenarie:

1. Åbn AUT

2. Find og klik på alternativknappen

pakke com.sample.stepdefinitions;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;offentlig klasse NameDemo {public static void main (String [] args) {// TODO Auto-genereret metodestubSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");WebDriver-driver = ny ChromeDriver ();driver.manage (). vindue (). maksimere ();driver.get ("http://demo.guru99.com/test/ajax.html");// Find alternativknappen til “Nej” ved hjælp af dens ID og klik på dendriver.findElement (By.id ("no")). klik ();// Klik på Check-knappendriver.findElement (By.id ("buttoncheck")). klik ();}}

Eksempel: Sådan bruges kommandoen Find elementer

Scenarie:

1. Åbn URL'en til applikation under test

2. Find teksten på radioknapperne, og udskriv den på outputkonsollen

pakke com.sample.stepdefinitions;importere java.util.List;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;offentlig klasse NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");WebDriver-driver = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Liste  -elementer = driver.findElements (efter.navn ("navn"));System.out.println ("Antal elementer: + elements.size ());for (int i = 0; i 

Resumé:

  • Find element-kommando returnerer det webelement, der matcher det første mest element på websiden.
  • Find Elements-kommandoen returnerer en liste over webelementer, der matcher kriterierne.
  • Find element af XPath i Selenium-kommando kaster NoSuchElementException, hvis det ikke finder det element, der matcher kriterierne.
  • Find Elements-kommandoen returnerer en tom liste i Selenium, hvis der ikke er nogen elementer, der matcher kriterierne