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.






