WebElement u Selenium
โก Pametni saลพetak
WebElement u Selenium predstavlja svaku kontrolu obrasca kao programabilni objekt, omoguฤujuฤi testerima interakciju s tekstualnim poljima, potvrdnim okvirima, radio gumbima i elementima za slanje pomoฤu metoda findElement, sendKeys, click, clear i submit putem Java primjeri koda.

WebElement u Selenium
Obrasci su temeljni web elementi koji prikupljaju informacije od posjetitelja web stranice. Web obrasci ukljuฤuju razliฤite GUI kontrole kao ลกto su tekstualni okviri, polja za lozinku, potvrdni okviri, radio gumbi, padajuฤi izbornici i unosi datoteka.
Ovaj vodiฤ objaลกnjava kako pristupiti svakom elementu obrasca pomoฤu Selenium WebDriver sa Java. Selenium enkapsulira svaki element obrasca kao objekt WebElementa. Pruลพa API za lociranje elemenata i djelovanje na njima, ukljuฤujuฤi unos teksta, klikanje gumba i slanje obrazaca. Odjeljci u nastavku pokrivaju metode dostupne za svaki element obrasca.
Uvod u WebElement, findElement(), findElements()
Selenium WebDriver predstavlja jednostavan element obrasca kao objekt od WebElement.
WebDriver identificira elemente obrasca koristeฤi razliฤita svojstva web elementa, ukljuฤujuฤi ID, naziv, klasu, XPath, Oznaka, CSS selektori i tekst poveznice.
WebDriver nudi sljedeฤe dvije WebElement metode za pronalaลพenje elemenata:
- pronaฤiElement() โ pronalazi jedan web element i vraฤa ga kao WebElement Selenium objekt.
- pronaฤiElemente() โ vraฤa popis WebElement objekata koji odgovaraju kriterijima lokatora.
Primjer u nastavku pokazuje kako dohvatiti jedan element, tekstualno polje na web stranici, kao objekt WebElement pomoฤu metode findElement(). Metoda findElements() za pronalaลพenje viลกe elemenata obraฤena je u sljedeฤim vodiฤima.
Korak 1) Uvezite paket potreban za stvaranje WebElement objekata.
Korak 2) Pozovite metodu findElement() dostupnu u klasi WebDriver za dohvaฤanje objekta WebElement, kao ลกto je prikazano u nastavku.
Selenium Unos teksta
Okviri za unos odnose se na jednu od ove dvije vrste:
- Tekstna polja - Selenium okviri za unos teksta koji prihvaฤaju unesene vrijednosti i prikazuju ih toฤno onako kako su unesene.
- Polja za lozinku โ tekstualni okviri koji prihvaฤaju unesene vrijednosti, ali ih maskiraju kao niz posebnih znakova (obiฤno toฤke ili zvjezdice) kako bi sakrili osjetljivi unos.
Lokatori
Metoda findElement() prima jedan parametar, a to je lokator koji pokazuje na element. Razliฤiti lokatori, ukljuฤujuฤi By.id(), By.name(), By.xpath() i By.cssSelector(), pronalaze elemente na stranici koristeฤi njihova svojstva kao ลกto su id, name ili path.
Moลพete koristiti dodatke poput FirePatha za dobivanje ID-a, XPath-a i drugih vrijednosti lokatora za elemente.
Koristeฤi primjer stranice https://demo.guru99.com/test/login.html, donji kod locira tekstualno polje โAdresa e-poลกteโ pomoฤu lokatora ID-a i polje โLozinkaโ pomoฤu lokatora imena.
- Polje za unos teksta e-poลกte nalazi se prema ID-u.
- Polje za lozinku nalazi se pored imena.
poslati kljuฤeve u Selenium
sendKeys() u Selenium je metoda koja se koristi za unos sadrลพaja koji se moลพe ureฤivati โโu tekstualna polja i polja za lozinku tijekom izvrลกavanja testa. Ta se polja identificiraju pomoฤu lokatora kao ลกto su naziv, klasa i ID. Metoda je dostupna na objektu WebElement. Za razliku od metode type, sendKeys() ne zamjenjuje postojeฤi tekst u tekstualnom okviru.
Kako unijeti tekst Selenium
Za unos teksta u tekstualna polja i polja za lozinku, sendKeys() je metoda dostupna na WebElementu u Selenium.
Koristeฤi isti primjer https://demo.guru99.com/test/login.html, donji isjeฤak locira tekstualno polje i polje za lozinku te unosi tekst u Selenium.
- Pronaฤite tekstualno polje "Adresa e-poลกte" pomoฤu lokatora ID-a.
- Pronaฤite polje "Lozinka" pomoฤu lokatora imena.
- Unesite tekst u "Adresu e-poลกte" pomoฤu Selenium Metoda sendKeys.
- Unesite lozinku u polje "Lozinka" pomoฤu metode sendKeys().
Brisanje vrijednosti u unosu Boxes
The ฤisto() Metoda briลกe tekst unutar polja za unos. Ova metoda ne treba parametar. Isjeฤak u nastavku briลกe tekst iz polja E-poลกta ili Lozinka.
Selenium Pritisnite Gumbi
The Selenium Gumbu za klik pristupa se pomoฤu metode click().
U gornjem primjeru
- Pronaฤite gumb za prijavu.
- Kliknite gumb "Prijava" na stranici za prijavu na web-mjesto za autentifikaciju.
Selenium Gumbi za slanje
Gumbi za slanje ลกalju cijeli obrazac na posluลพitelj. Moลพete pozvati metodu click() na WebElementu, kao ลกto je prikazano gore, ili koristiti metodu submit() na bilo kojem elementu u obrascu ili na samom gumbu za slanje.
Kada se koristi submit(), WebDriver pretraลพuje DOM kako bi identificirao obrazac kojem element pripada, a zatim pokreฤe njegovu funkciju submit.
potpun Code
Evo kompletnog radnog koda.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
Rjeลกavanje problema
Ako naiฤete na NoSuchElementException() prilikom pronalaลพenja elemenata, element nije prisutan na stranici u trenutku kada mu je WebDriver pristupio.
- Ponovno provjerite svoj lokator pomoฤu FirePatha ili opcije Inspect Element u Chromeu.
- Provjerite razlikuje li se vrijednost koriลกtena u kodu od trenutne vrijednosti elementa prikazanog u FirePathu.
- Neki atributi su dinamiฤki za odreฤene elemente. Ako se vrijednost dinamiฤki mijenja, prebacite se na By.xpath() ili By.cssSelector(), koji su pouzdaniji, ali neลกto sloลพeniji.
- Ponekad je problem uvjet ฤekanja; WebDriver moลพe izvrลกiti kรดd prije nego ลกto se stranica uฤitava.
- Dodajte ฤekanje prije findElement() koristeฤi implicitna ili eksplicitna ฤekanja.
Rezime
- Donja tablica saลพima naredbe za pristup svakoj vrsti elementa o kojoj se gore raspravljalo.
| Element | naredba | Description |
|---|---|---|
| Ulazni Box | sendKeys() | Koristi se za unos vrijednosti u tekstualne okvire. |
| ฤisto() | Koristi se za brisanje trenutne vrijednosti tekstualnih okvira. | |
| linkovi | klik() | Koristi se za klik na poveznicu i ฤekanje da se uฤitavanje stranice zavrลกi prije prelaska na sljedeฤu naredbu. |
| Poลกalji Button | podnijeti() | Koristi se za slanje obrasca aktiviranjem rukovatelja slanjem nadreฤenog obrasca. |
- WebDriver omoguฤuje odabir viลกe od jedne opcije u viลกestrukom SELECT elementu.
- Metodu submit() moลพete koristiti na bilo kojem elementu unutar obrasca. WebDriver automatski pokreฤe funkciju submit obrasca kojem element pripada.






