Leidke Element ja FindElements XPathi abil Seleeni veebidraiverist

Lang L: none (table-of-contents):

Anonim

Miks vajate käsku Element / s leidmine?

Veebilehega suhtlemiseks peab kasutaja veebielemendi leidma. Käsku Elementi kasutatakse (ühe) veebielemendi unikaalseks tuvastamiseks veebilehel. Seevastu käsku Otsi elemente kasutatakse veebisaidil olevate veebielementide loendi kordumatuks tuvastamiseks. Veebilehe veebielemendi kordumatuks tuvastamiseks on mitu võimalust, näiteks ID, nimi, klassi nimi, lingitekst, osaline lingitekst, sildi nimi ja XPATH.

FindElementi käsu süntaks:

Selenium Find Elementi käsk võtab parameetriks objekti By ja tagastab seleenis objekti tüüpi loendi WebElement. Objekti kaupa saab omakorda kasutada mitmesuguste lokaatoristrateegiatega, näiteks elemendi leidmine ID-seleeni, nime, klassi nime, XPATH-i järgi. Allpool on käsu FindElement süntaks Seleeni veebidraiveris.

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

Lokaatori strateegia võib olla üks järgmistest väärtustest.

  • ID
  • Seleeni leidmise element nime järgi
  • Klassi nimi
  • Sildi nimi
  • Lingi tekst
  • Osaline lingitekst
  • XPATH

Lokaatori väärtus on kordumatu väärtus, mille abil saab veebielemendi tuvastada. Arendajate ja testijate kohustus on veenduda, et veebielemendid oleksid ainulaadselt tuvastatavad, kasutades teatud omadusi, näiteks ID või nimi.

Näide:

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

FindElements käsu süntaks:

Käsk FindElements in Selenium võtab parameetriks objekti By ja tagastab veebielementide loendi. See tagastab tühja loendi, kui antud lokaatori strateegiat ja lokaatori väärtust kasutades ei leidu elemente. Allpool on käsu find elements süntaks.

Loend  elementNimi = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Näide:

Loend  listOfElements = draiver.findElements (By.xpath ("// div"));

Leidke element Vs Leidke elemendid

Allpool on toodud suuremad erinevused leidmiselemendi ja leidmiselemendi käskude vahel.

Leidke element Vs Leidke elemendid seleenist
Leidke element Leidke elemendid
Tagastab esimese kõige suurema veebielemendi, kui sama lokaatoriga on leitud mitu veebielementi Tagastab veebielementide loendi
Viskab erandi NoSuchElementException, kui lokaatori strateegiale vastavaid elemente pole Tagastab tühja loendi, kui lokaatori strateegiale vastavaid veebielemente pole
Leidke element XPathi abil ainult üks veebielement See leiab kogumi elemente, mis vastavad lokatori strateegiale.
Ei ole kohaldatav Iga veebielement indekseeritakse arvuga, mis algab 0-st nagu massiiv

Näide: kuidas kasutada käsku Leia element

Järgmist rakendust kasutatakse demo eesmärgil

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

Stsenaarium:

1. Avage AUT

2. Leidke raadionupp ja klõpsake seda

pakett com.sample.stepdefinitions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;avaliku klassi nimiDemo {public staatiline void main (String [] args) {// TODO Automaatselt loodud meetodi tüviSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();draiver.halda (). aken (). maksimeeri ();driver.get ("http://demo.guru99.com/test/ajax.html");// Leidke raadionupp „Ei“ selle ID abil ja klõpsake selleldriver.findElement (By.id ("ei")). klõpsake ();// Klõpsake nuppu Kontrollidriver.findElement (By.id ("nupuvajutus")). klõpsake ();}}

Näide: kuidas kasutada käsku Leia elemendid

Stsenaarium:

1. Avage testitava rakenduse URL

2. Leidke raadionuppude tekst ja printige see väljundkonsoolile

pakett 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;avaliku klassi nimiDemo {public staatiline void main (String [] args) {System.setProperty ("veebidraiver.chrome.driver", "X: //chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");Nimekiri  elemendid = driver.findElements (By.name ("nimi"));System.out.println ("Elementide arv: + elements.size ());for (int i = 0; i 

Kokkuvõte:

  • Käsk Leia element tagastab veebielemendi, mis sobib veebilehe esimese kõige suurema elemendiga.
  • Käsk Leia elemendid tagastab kriteeriumidele vastavate veebielementide loendi.
  • Kui leiad elementi kriteeriumidele vastava, viskab käsk Selenium käsu Selenium abil elemendi XPath abil käsu NoSuchElementException.
  • Käsk Leia elemendid tagastab seleenis tühja loendi, kui kriteeriumidele vastavaid elemente pole