Obrasci su osnovni web elementi za primanje informacija od posjetitelja web stranice. Web obrasci imaju različite GUI elemente poput tekstualnih okvira, polja lozinke, potvrdnih okvira, radio gumba, padajućih pada, unosa datoteka itd.
Vidjet ćemo kako pristupiti tim različitim elementima obrasca pomoću Selenium Web Driver s Javom. Selen enkapsulira svaki element obrasca kao objekt WebElementa. Omogućuje API za pronalaženje elemenata i poduzimanje radnji na njima, poput unošenja teksta u tekstualne okvire, klika na gumbe itd. Vidjet ćemo metode dostupne za pristup svakom elementu obrasca.
U ovom uputstvu vidjet ćemo kako prepoznati sljedeće elemente obrasca
- Uvod u WebElement, findElement (), findElements ()
- Okvir za unos
- Unos vrijednosti u okvire za unos
- Brisanje vrijednosti u okvirima za unos
- Gumbi
- Gumbi za slanje
- Potpuni kod
- Rješavanje problema
Uvod u WebElement, findElement (), findElements ()
Selenium Web Driver obuhvaća jednostavan element oblika kao objekt WebElementa.
Postoje razne tehnike pomoću kojih WebDriver identificira elemente obrasca na temelju različitih svojstava web elemenata kao što su ID, Ime, Klasa, XPath, Oznaka, CSS Selektori, Tekst veze itd.
Web vozač nudi sljedeće dvije metode WebElement za pronalaženje elemenata.
- findElement () - pronalazi jedan web element i vraća se kao WebElement Selenium objekt.
- findElements () - vraća popis WebElement objekata koji odgovaraju kriterijima lokatora.
Pogledajmo isječke koda kako bismo dobili jedan element - Tekstualno polje na web stranici kao objekt WebElementa pomoću metode findElement (). Obuhvatit ćemo metodu findElements () za pronalaženje više elemenata u sljedećim vodičima.
1. korak: Moramo uvesti ovaj paket za stvaranje objekata Web elemenata
Korak 2: Moramo pozvati metodu findElement () koja je dostupna u klasi WebDriver i dobiti objekt WebElementa.
Pogledajte dolje kako biste vidjeli kako se to radi.
Okvir za unos
Okviri za unos odnose se na bilo koju od ove dvije vrste:
- Tekstualna polja - tekstualni okviri za unos selena koji prihvaćaju upisane vrijednosti i prikazuju ih onakvima kakvi jesu.
- Polja zaporke - tekstualni okviri koji prihvaćaju upisane vrijednosti, ali ih maskiraju kao niz posebnih znakova (obično točkica i zvjezdica) kako bi se izbjeglo prikazivanje osjetljivih vrijednosti.
Lokatori
Metoda findElement () uzima jedan parametar koji je lokator elementa. Različiti lokatori poput By.id (), By.name (), By.xpath (), By.CSSSelector () itd. Pronalaze elemente na stranici koristeći njihova svojstva poput id-a, imena ili putanje, itd.
Možete koristiti dodatke poput Fire path da biste dobili pomoć pri dobivanju ID-a, xpath-a itd. Elemenata.
Korištenje dolje navedenog primjera web mjesta http://demo.guru99.com/test/login.html je kod za pronalaženje tekstualnog polja "Adresa e-pošte" pomoću lokatora id-a i polja "Lozinka" pomoću lokatora imena.
- Polje za tekst e-pošte nalazi se pod Id
- Polje za lozinku nalazi se po imenu
ključevi u selenu
sendkeys () u programu Selenium metoda je koja se koristi za unos sadržaja koji se može uređivati u tekst i polja lozinke tijekom izvođenja testa. Ta se polja identificiraju pomoću lokatora kao što su ime, klasa, id itd. To je metoda dostupna na web elementu. Za razliku od metode tipa, metoda sendkeys () ne zamjenjuje postojeći tekst u bilo kojem tekstualnom okviru.
Unos vrijednosti u okvire za unos
Da biste unijeli tekst u tekstna polja i polja lozinke, sendKeys () je metoda dostupna na WebElementu u seleniju.
Koristeći isti primjer web stranice http://demo.guru99.com/test/login.html, evo kako pronalazimo polja Tekst i Polja zaporke i unosimo tekst u Selenium.
- Pronađite tekstualno polje "Adresa e-pošte" pomoću lokatora id-a.
- Pronađite polje "Lozinka" pomoću pretraživača imena
- Unesite tekst u "Adresa e-pošte" metodom selenijskih tipki za slanje.
- Unesite lozinku u polje "Lozinka" pomoću metode sendKeys ().
Brisanje vrijednosti u okvirima za unos
Metoda clear () koristi se za brisanje teksta u okviru za unos. Ova metoda ne treba parametar . Isječak koda u nastavku obrisat će tekst iz polja E-pošta ili Lozinka
Gumbi
Kliknućem gumbu Selenium može se pristupiti pomoću metode click ().
U gornjem primjeru
- Pronađite gumb za prijavu
- Za prijavu na stranicu kliknite gumb "Prijava" na stranici za prijavu stranice.
Gumbi za slanje
Gumbi za slanje koriste se za slanje cijelog obrasca na poslužitelj. Možemo koristiti metodu click () na web elementu poput uobičajenog gumba kao što smo to učinili gore ili metodu submit () na bilo kojem web elementu u obrascu ili na samom gumbu za slanje.
Kada se koristi submit (), WebDriver će potražiti DOM kako bi znao kojem obliku pripada element, a zatim će pokrenuti njegovu funkciju submit.
Potpuni kod
Ovdje je potpuni radni kod
uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;uvoz org.openqa.selenium. *;obrazac za javni razred {javna statička void glavna (String [] args) {// deklaracija i instancija objekata / varijabliSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Upravljački program WebDriver = novi ChromeDriver ();String baseUrl = "http://demo.guru99.com/test/login.html";driver.get (baseUrl);// Nabavite WebElement koji odgovara adresi e-pošte (TextField)WebElement e-pošta = driver.findElement (By.id ("email"));// Nabavite WebElement koji odgovara polju lozinkeLozinka WebElement = driver.findElement (By.name ("passwd"));email.sendKeys (" Ova adresa e-pošte zaštićena je od neželjenih robota, potreban vam je omogućen JavaScript da biste je vidjeli.");password.sendKeys ("abcdefghlkjl");System.out.println ("Set tekstualnog polja");// Brisanje vrijednosti u tekstualnom okviruemail.clear ();lozinka.clear ();System.out.println ("Očišćeno tekstno polje");// Pronađite gumb za slanjeWebElement prijava = driver.findElement (By.id ("SubmitLogin"));// Korištenje metode klika za slanje obrascaemail.sendKeys (" Ova adresa e-pošte zaštićena je od neželjenih robota, potreban vam je omogućen JavaScript da biste je vidjeli."); password.sendKeys ("abcdefghlkjl"); login.click (); System.out.println ("Prijava gotova klikom"); // pomoću metode slanja za slanje obrasca. Predaja se koristi na polju driver password.get (baseUrl); driver.findElement (By.id ("email")). sendKeys (" Ova adresa e-pošte zaštićena je od neželjenih robota, potreban vam je omogućen JavaScript da biste je vidjeli."); driver.findElement (By.name ("passwd")). sendKeys ("abcdefghlkjl"); driver.findElement (By.id ("SubmitLogin")). submit (); System.out.println ("Prijava gotova s prijavom"); //driver.close (); }}
Rješavanje problema
Ako naiđete na NoSuchElementException () tijekom pronalaska elemenata, to znači da element nije pronađen na stranici u trenutku kada je web-pokretač pristupio stranici.
- Ponovno provjerite svoj lokator koristeći Firepath ili Inspect Element u Chromeu.
- Provjerite razlikuje li se vrijednost koju ste koristili u kodu od one za element u Firepathu sada.
- Neka svojstva su dinamična za nekoliko elemenata. U slučaju da ustanovite da je vrijednost drugačija i da se dinamički mijenja, razmislite o upotrebi By.xpath () ili By.cssSelector () koji su pouzdaniji, ali složeni načini.
- Ponekad bi to moglo biti i pitanje čekanja, tj. Web-upravljački program izvršio je vaš kôd i prije nego što se stranica u potpunosti učitala itd.
- Dodajte čekanje prije findElement () pomoću implicitnih ili eksplicitnih čekanja.
Sažetak
- Tablica u nastavku sažima naredbe za pristup svakoj vrsti elementa o kojem je gore bilo riječi
Element | Naredba | Opis |
---|---|---|
Okvir za unos | sendKeys () | koristi se za unos vrijednosti u okvire za tekst |
čisto() | koristi se za brisanje tekstualnih okvira trenutne vrijednosti | |
Veze | klik() | koristi se da klikne na vezu i pričeka da se završi učitavanje stranice prije nego što se prijeđe na sljedeću naredbu. |
Gumb za slanje | podnijeti() |
- WebDriver omogućuje odabir više od jedne opcije u višestrukim elementima SELECT.
- Metodu submit () možete koristiti na bilo kojem elementu u obrascu. WebDriver će automatski pokrenuti funkciju slanja obrasca tamo gdje taj element pripada.