Waarom heb je de opdracht Element / s zoeken nodig?
Voor interactie met een webpagina moet een gebruiker het webelement lokaliseren. De opdracht Element zoeken wordt gebruikt om een (één) webelement op de webpagina uniek te identificeren. Terwijl de opdracht Elementen zoeken wordt gebruikt om de lijst met webelementen op de webpagina uniek te identificeren. Er zijn meerdere manieren om een webelement op de webpagina uniek te identificeren, zoals ID, naam, klassenaam, koppelingstekst, gedeeltelijke koppelingstekst, tagnaam en XPATH.
Syntaxis van de opdracht FindElement:
Selenium Find Element-commando neemt het By-object als parameter en retourneert een object van het type list WebElement in Selenium. Per object kan op zijn beurt worden gebruikt met verschillende locatorstrategieën zoals zoekelement op ID Selenium, Naam, Klassenaam, XPATH enz. Hieronder staat de syntaxis van het FindElement-commando in de Selenium-webdriver.
WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));
Locator Strategie kan een van de volgende waarden zijn.
- ID kaart
- Selenium zoek element op naam
- Naam van de klasse
- Tag naam
- Verbind tekst
- Gedeeltelijke linktekst
- XPATH
Locatorwaarde is de unieke waarde waarmee een webelement kan worden geïdentificeerd. Het is de verantwoordelijkheid van ontwikkelaars en testers om ervoor te zorgen dat webelementen uniek identificeerbaar zijn met behulp van bepaalde eigenschappen, zoals ID of naam.
Voorbeeld:
WebElement loginLink = driver.findElement (By.linkText ("Login"));
Syntaxis van de opdracht FindElements:
De opdracht FindElements in Selenium neemt By object als parameter en retourneert een lijst met webelementen. Het retourneert een lege lijst als er geen elementen zijn gevonden met de opgegeven locatorstrategie en locatorwaarde. Hieronder staat de syntaxis van het commando vind elementen.
LijstelementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));
Voorbeeld:
LijstlistOfElements = driver.findElements (By.xpath ("// div"));
Vind element Vs Vind elementen
Hieronder staan de belangrijkste verschillen tussen de opdrachten voor zoekelementen en zoekelementen.
Vind Element | Vind elementen |
---|---|
Retourneert het eerste meest webelement als er meerdere webelementen zijn gevonden met dezelfde locator | Retourneert een lijst met webelementen |
Genereert uitzondering NoSuchElementException als er geen elementen zijn die overeenkomen met de locatorstrategie | Retourneert een lege lijst als er geen webelementen zijn die overeenkomen met de locatorstrategie |
Element zoeken met XPath zal slechts één webelement vinden | Het zal een verzameling elementen vinden die overeenkomen met de locatorstrategie. |
Niet toepasbaar | Elk webelement wordt geïndexeerd met een nummer dat begint bij 0, net als een array |
Voorbeeld: het gebruik van de opdracht Element zoeken
De volgende applicatie wordt gebruikt voor demonstratiedoeleinden
http://demo.guru99.com/test/ajax.html
Scenario:
1. Open de AUT
2. Zoek en klik op het keuzerondje
pakket com.sample.stepdefinitions;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;openbare klasse NameDemo {public static void main (String [] args) {// TODO Automatisch gegenereerde methodestubSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");WebDriver-stuurprogramma = nieuwe ChromeDriver ();driver.manage (). window (). maximaliseren ();driver.get ("http://demo.guru99.com/test/ajax.html");// Zoek het keuzerondje voor "Nee" met behulp van zijn ID en klik eropdriver.findElement (By.id ("no")). click ();// Klik op de knop Controlerendriver.findElement (By.id ("buttoncheck")). click ();
Voorbeeld: het gebruik van de opdracht Elementen zoeken
Scenario:
1. Open de URL voor de te testen applicatie
2. Zoek de tekst van keuzerondjes en druk deze af op de uitvoerconsole
pakket com.sample.stepdefinitions;importeer java.util.List;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.openqa.selenium.chrome.ChromeDriver;openbare klasse NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");WebDriver-stuurprogramma = nieuwe ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Lijst-elementen = driver.findElements (By.name ("name"));System.out.println ("Aantal elementen: + elements.size ());voor (int i = 0; i Overzicht:
- De opdracht Element zoeken retourneert het webelement dat overeenkomt met het eerste element op de webpagina.
- De opdracht Elementen zoeken retourneert een lijst met webelementen die voldoen aan de criteria.
- Find Element by XPath in Selenium command gooit NoSuchElementException als het het element niet vindt dat aan de criteria voldoet.
- De opdracht Elementen zoeken retourneert een lege lijst in Selenium als er geen elementen zijn die aan de criteria voldoen