Hitta element och FindElements av XPath i Selenium WebDriver

Innehållsförteckning:

Anonim

Varför behöver du kommandot Find Element / s?

Interaktion med en webbsida kräver att användaren hittar webbelementet. Kommandot Sök element används för att identifiera ett (ett) webbelement på webbsidan unikt. Medan Find Elements-kommandot används för att identifiera listan över webbelement på webbsidan unikt. Det finns flera sätt att unikt identifiera ett webbelement på webbsidan, t.ex. ID, namn, klassnamn, länktext, partiell länktext, taggnamn och XPATH.

FindElement-kommandosyntax:

Selen Find Element-kommandot tar By-objektet som parameter och returnerar ett objekt av typlistan WebElement i Selenium. Efter objekt kan i sin tur användas med olika lokaliseringsstrategier såsom hitta element av ID Selenium, Namn, Klassnamn, XPATH etc. Nedan är syntaxen för FindElement-kommandot i Selenium-webbdrivrutinen.

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

Locator Strategy kan vara något av följande värden.

  • ID
  • Selen hitta element efter namn
  • Klassnamn
  • Taggnamn
  • Länktext
  • Partiell länktext
  • XPATH

Locator Value är det unika värdet med vilket ett webbelement kan identifieras. Det är utvecklarnas och testarnas ansvar att se till att webbelement är unikt identifierbara med vissa egenskaper som ID eller namn.

Exempel:

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

FindElements kommandosyntax:

Kommandot FindElements i Selen tar in By-objekt som parameter och returnerar en lista med webbelement. Den returnerar en tom lista om det inte finns några element som använder den angivna lokaliseringsstrategin och lokaliseringsvärdet. Nedan är syntaxen för kommandot hitta element.

Lista  elementnamn = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Exempel:

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

Hitta element Vs Hitta element

Nedan visas de stora skillnaderna mellan kommandon för hitta element och hitta element.

Hitta element Vs Hitta element i Selen
Hitta element Hitta element
Returnerar det första webbelementet om det finns flera webbelement som hittas med samma lokaliserare Returnerar en lista med webbelement
Kaster undantag NoSuchElementException om det inte finns några element som matchar lokaliseringsstrategin Returnerar en tom lista om det inte finns några webbelement som matchar lokaliseringsstrategin
Hitta element av XPath hittar bara ett webbelement Den hittar en samling element som matchar lokaliseringsstrategin.
Inte tillämpbar Varje webbelement indexeras med ett tal som börjar från 0 precis som en matris

Exempel: Hur man använder kommandot Sök element

Följande applikation används för demoändamål

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

Scenario:

1. Öppna AUT

2. Hitta och klicka på alternativknappen

paketet com.sample.stepdefinitions;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.chrome.ChromeDriver;public class NameDemo {public static void main (String [] args) {// TODO Auto-genererad metodstubSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();driver.manage (). fönster (). maximera ();driver.get ("http://demo.guru99.com/test/ajax.html");// Hitta alternativknappen för “Nej” med dess ID och klicka på dendriver.findElement (By.id ("no")). klicka ();// Klicka på Kontrollknappendriver.findElement (By.id ("buttoncheck")). klicka ();}}

Exempel: Hur man använder kommandot Hitta element

Scenario:

1. Öppna webbadressen för applikation under test

2. Hitta texten på radioknapparna och skriv ut den på utgångskonsolen

paketet com.sample.stepdefinitions;importera java.util.List;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.WebElement;importera org.openqa.selenium.chrome.ChromeDriver;public class NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Lista element  = driver.findElements (By.name ("name"));System.out.println ("Antal element: + element.storlek ());för (int i = 0; i 

Sammanfattning:

  • Kommandot Sök element returnerar webbelementet som matchar det första elementet på webbsidan.
  • Kommandot Sök element returnerar en lista över webbelement som matchar kriterierna.
  • Hitta element av XPath i Selen-kommandot kastar NoSuchElementException om det inte hittar elementet som matchar kriterierna.
  • Kommandot Sök element returnerar en tom lista i Selen om det inte finns några element som matchar kriterierna