Nájdite Element a FindElements podľa XPath v selenovom webovom ovládači

Obsah:

Anonim

Prečo potrebujete príkaz Nájsť element / y?

Interakcia s webovou stránkou vyžaduje, aby používateľ našiel webový prvok. Príkaz Find Element sa používa na jednoznačnú identifikáciu (jedného) webového prvku na webovej stránke. Zatiaľ čo príkaz Nájsť prvky sa používa na jednoznačnú identifikáciu zoznamu webových prvkov na webovej stránke. Existuje niekoľko spôsobov, ako jednoznačne identifikovať webový prvok na webovej stránke, napríklad ID, názov, názov triedy, text odkazu, text čiastočného odkazu, názov značky a XPATH.

Syntax príkazu FindElement:

Príkaz Selenium Find Element prevezme ako parameter objekt By a vráti objekt typu list WebElement v seléne. Objekt je zase možné použiť s rôznymi stratégiami lokátorov, ako je napríklad vyhľadanie prvku podľa ID Selenium, Name, Class Name, XPATH atď. Ďalej je uvedená syntax príkazu FindElement vo webovom ovládači Selenium.

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

Stratégia lokátora môže mať ktorúkoľvek z nasledujúcich hodnôt.

  • ID
  • Vyhľadajte prvok selén podľa názvu
  • Názov triedy
  • Názov značky
  • Text odkazu
  • Čiastočný text odkazu
  • XPATH

Locator Value je jedinečná hodnota, pomocou ktorej je možné identifikovať webový prvok. Je zodpovednosťou vývojárov a testerov zabezpečiť, aby boli webové prvky jednoznačne identifikovateľné pomocou určitých vlastností, ako je ID alebo názov.

Príklad:

WebElement loginLink = driver.findElement (By.linkText ("Prihlásenie"));

Syntax príkazu FindElements:

Príkaz FindElements in Selenium prijme By object ako parameter a vráti zoznam webových prvkov. Vráti prázdny zoznam, ak pomocou danej stratégie a hodnoty lokátora nie sú nájdené žiadne prvky. Nižšie je uvedená syntax príkazu nájsť prvky.

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

Príklad:

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

Nájsť prvok Vs Nájsť prvky

Ďalej sú uvedené hlavné rozdiely medzi príkazmi find element a find elements.

Nájsť prvok Vs Nájsť prvky v seléne
Nájdite prvok Nájdite prvky
Vráti prvý najviac webový prvok, ak sa našlo viac webových prvkov s rovnakým vyhľadávačom Vráti zoznam webových prvkov
Ak neexistujú žiadne prvky zodpovedajúce stratégii lokátora, hodí výnimku NoSuchElementException Vráti prázdny zoznam, ak stratégii vyhľadávača nezodpovedajú žiadne webové prvky
Nájsť prvok pomocou XPath nájde iba jeden webový prvok Nájde zbierku prvkov, ktorých zhoda so stratégiou lokátora.
Nepoužiteľné Každý webový prvok je indexovaný číslom začínajúcim od 0 rovnako ako pole

Príklad: Ako používať príkaz Nájsť prvok

Nasledujúca aplikácia sa používa na demo účely

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

Scenár:

1. Otvorte AUT

2. Nájdite a kliknite na prepínač

balíček com.sample.stepdefinitions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;verejná trieda NameDemo {public static void main (String [] args) {// TODO Automaticky generovaný pahýl metódySystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Ovládač WebDriver = nový ChromeDriver ();driver.manage (). window (). maximize ();driver.get ("http://demo.guru99.com/test/ajax.html");// Vyhľadajte prepínač „Nie“ pomocou jeho ID a kliknite na nehodriver.findElement (By.id ("no")). click ();// Kliknite na tlačidlo Skontrolovaťdriver.findElement (By.id ("buttoncheck")). click ();}}

Príklad: Ako používať príkaz Nájsť prvky

Scenár:

1. Otvorte adresu URL testovanej aplikácie

2. Nájdite text prepínačov a vytlačte ich na výstupnú konzolu

balíček 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;verejná trieda NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Ovládač WebDriver = nový ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Zoznam  elements = driver.findElements (By.name ("name"));System.out.println ("Počet prvkov: + elements.size ());pre (int i = 0; i 

Zhrnutie:

  • Príkaz Nájsť prvok vráti webový prvok, ktorý sa zhoduje s prvým prvkom na webovej stránke.
  • Príkaz Nájsť prvky vráti zoznam webových prvkov, ktoré zodpovedajú kritériám.
  • Príkaz Find Element by XPath in Selenium hodí NoSuchElementException, ak nenájde prvok zodpovedajúci kritériám.
  • Príkaz Nájsť prvky vráti prázdny zoznam v seléne, ak kritériám nezodpovedajú žiadne prvky