Najděte prvek a FindElements podle XPath v selenu WebDriver

Obsah:

Anonim

Proč potřebujete příkaz Najít prvek / prvky?

Interakce s webovou stránkou vyžaduje, aby uživatel vyhledal webový prvek. Příkaz Najít prvek se používá k jedinečné identifikaci (jednoho) webového prvku na webové stránce. Zatímco příkaz Najít prvky se používá k jedinečné identifikaci seznamu webových prvků na webové stránce. Existuje několik způsobů, jak jednoznačně identifikovat webový prvek na webové stránce, například ID, název, název třídy, text odkazu, text částečného odkazu, název značky a XPATH.

Syntaxe příkazu FindElement:

Příkaz Najít prvek selenu vezme jako parametr objekt By a vrátí objekt typu seznamu WebElement v selenu. Objekt lze zase použít s různými strategiemi lokátorů, jako je find element by ID Selenium, Name, Class Name, XPATH atd. Níže je uvedena syntaxe příkazu FindElement ve webovém ovladači Selenium.

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

Strategií lokátoru může být některá z následujících hodnot.

  • ID
  • Selen najít prvek podle jména
  • Jméno třídy
  • Název štítku
  • Text odkazu
  • Částečný text odkazu
  • XPATH

Locator Value je jedinečná hodnota, pomocí které lze identifikovat webový prvek. Je odpovědností vývojářů a testerů zajistit, aby byly webové prvky jednoznačně identifikovatelné pomocí určitých vlastností, jako je ID nebo název.

Příklad:

WebElement loginLink = driver.findElement (By.linkText ("Přihlášení"));

Syntaxe příkazu FindElements:

Příkaz FindElements in Selenium převezme jako objekt parametr By a vrátí seznam webových prvků. Vrátí prázdný seznam, pokud pomocí dané strategie lokátoru a hodnoty lokátoru nebyly nalezeny žádné prvky. Níže je uvedena syntaxe příkazu find elements.

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

Příklad:

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

Najít prvek Vs Najít prvky

Níže jsou uvedeny hlavní rozdíly mezi příkazy find element a find elements.

Najít prvek Vs Najít prvky v selenu
Najít prvek Najít prvky
Vrátí první nejvíce webový prvek, pokud existuje více webových prvků se stejným vyhledávačem Vrátí seznam webových prvků
Vyvolá výjimku NoSuchElementException, pokud neexistují žádné prvky odpovídající strategii lokátoru Vrátí prázdný seznam, pokud neexistují žádné webové prvky odpovídající strategii lokátoru
Najít prvek pomocí XPath najde pouze jeden webový prvek Najde kolekci prvků, jejichž strategie odpovídá lokátoru.
Nelze použít Každý webový prvek je indexován číslem začínajícím od 0 stejně jako pole

Příklad: Jak používat příkaz Najít prvek

Následující aplikace slouží k ukázkovým účelům

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

Scénář:

1. Otevřete AUT

2. Najděte a klikněte na přepínač

balíček com.sample.stepdefinitions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;veřejná třída NameDemo {public static void main (String [] args) {// TODO Automaticky generovaný útržek metodySystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Ovladač WebDriver = nový ChromeDriver ();driver.manage (). window (). maximize ();driver.get ("http://demo.guru99.com/test/ajax.html");// Najděte přepínač „Ne“ pomocí jeho ID a klikněte na nějdriver.findElement (By.id ("no")). click ();// Klikněte na tlačítko Zkontrolovatdriver.findElement (By.id ("buttoncheck")). click ();}}

Příklad: Jak používat příkaz Najít prvky

Scénář:

1. Otevřete adresu URL testované aplikace

2. Najděte text přepínacích tlačítek a vytiskněte jej na výstupní konzoli

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;veřejná třída NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Ovladač WebDriver = nový ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");List  elements = driver.findElements (By.name ("name"));System.out.println ("Počet prvků: + elements.size ());for (int i = 0; i 

Souhrn:

  • Příkaz Najít prvek vrací webový prvek, který odpovídá prvnímu nejvíce prvku na webové stránce.
  • Příkaz Najít prvky vrací seznam webových prvků, které odpovídají kritériím.
  • Najít prvek pomocí XPath v příkazu Selen vyvolá NoSuchElementException, pokud nenajde prvek odpovídající kritériím.
  • Příkaz Najít prvky vrací prázdný seznam v selenu, pokud kritériím neodpovídají žádné prvky