WebElement în Selenium
⚡ Rezumat inteligent
WebElement în Selenium reprezintă fiecare control de formular ca un obiect programabil, permițând testerilor să interacționeze cu câmpuri de text, casete de selectare, butoane radio și să trimită elemente folosind metodele findElement, sendKeys, click, clear și submit prin Java exemple de cod.

WebElement în Selenium
Formularele sunt elementele web fundamentale care captează informații de la vizitatorii site-ului web. Formularele web includ diferite controale GUI, cum ar fi casete de text, câmpuri pentru parolă, casete de selectare, butoane radio, meniuri derulante și intrări de fișiere.
Acest tutorial explică cum se accesează fiecare element al formularului folosind Selenium WebDriver cu Java. Selenium încapsulează fiecare element de formular ca obiect al WebElement. Oferă o interfață de programare (API) pentru localizarea elementelor și acționarea asupra acestora, inclusiv introducerea de text, clicurile pe butoane și trimiterea de formulare. Secțiunile de mai jos acoperă metodele disponibile pentru fiecare element al formularului.
Introducere în WebElement, findElement(), findElements()
Selenium WebDriver reprezintă un element simplu de formular ca obiect al Element Web.
WebDriver identifică elementele formularului folosind diferite proprietăți ale elementului web, inclusiv ID, Nume, Clasă, XPath, Nume de etichetă, selectori CSS și textul linkului.
WebDriver oferă următoarele două metode WebElement pentru a găsi elemente:
- findElement() – găsește un singur element web și îl returnează ca WebElement Selenium obiect.
- findElements() – returnează o listă de obiecte WebElement care corespund criteriilor de localizare.
Exemplul de mai jos arată cum se regăsește un singur element, un câmp text dintr-o pagină web, ca obiect WebElement folosind metoda findElement(). Metoda findElements() pentru găsirea mai multor elemente este prezentată în tutorialele ulterioare.
Pas 1) Importați pachetul necesar pentru a crea obiecte WebElement.
Pas 2) Apelați metoda findElement() disponibilă în clasa WebDriver pentru a prelua un obiect WebElement, așa cum se arată mai jos.
Selenium Introdu textul
Casetele de introducere se referă la oricare dintre aceste două tipuri:
- Câmpuri de text - Selenium casete de text de introducere care acceptă valori tastate și le afișează exact așa cum sunt introduse.
- Câmpuri de parolă – casete de text care acceptă valori introduse, dar le maschează ca o serie de caractere speciale (de obicei puncte sau asteriscuri) pentru a ascunde datele de intrare sensibile.
Localizatori
Metoda findElement() primește un parametru, care este un localizator care indică elementul. Diferiți localizatori, inclusiv By.id(), By.name(), By.xpath() și By.cssSelector(), găsesc elemente pe pagină folosind proprietățile acestora, cum ar fi id, name sau path.
Puteți utiliza pluginuri precum FirePath pentru a obține id-ul, xpath-ul și alte valori de localizare pentru elemente.
Folosind site-ul exemplu https://demo.guru99.com/test/login.html, codul de mai jos localizează câmpul text „Adresă de e-mail” folosind localizatorul de ID și câmpul „Parolă” folosind localizatorul de nume.
- Câmpul de text pentru e-mail este localizat după ID.
- Câmpul pentru parolă este situat lângă nume.
trimite cheile în Selenium
sendKeys() în Selenium este o metodă utilizată pentru a introduce conținut editabil în câmpurile de text și parolă în timpul execuției testului. Aceste câmpuri sunt identificate prin localizatori precum nume, clasă și ID. Metoda este disponibilă pe obiectul WebElement. Spre deosebire de metoda type, sendKeys() nu înlocuiește textul existent dintr-o casetă de text.
Cum să introduceți text în Selenium
Pentru a introduce text în câmpurile de text și în câmpurile pentru parolă, sendKeys() este metoda disponibilă pe WebElement în Selenium.
Folosind același exemplu de https://demo.guru99.com/test/login.html, fragmentul de mai jos localizează câmpul de text și câmpul pentru parolă și introduce text în Selenium.
- Găsiți câmpul de text „Adresă de e-mail” folosind localizatorul de ID-uri.
- Găsiți câmpul „Parolă” folosind localizatorul de nume.
- Introduceți text în „Adresa de e-mail” folosind Selenium Metoda sendKeys.
- Introduceți o parolă în câmpul „Parolă” folosind metoda sendKeys().
Ștergerea valorilor din intrare Boxes
clar() Metoda șterge textul dintr-o casetă de introducere. Această metodă nu necesită un parametru. Fragmentul de mai jos șterge textul din câmpurile Email sau Password.
Selenium Faceți clic pe Butoane
Selenium Butonul click se accesează folosind metoda click().
În exemplul de mai sus
- Găsește butonul pentru a te conecta.
- Faceți clic pe butonul „Autentificare” de pe pagina de conectare a site-ului pentru a vă autentifica.
Selenium Butoane de trimitere
Butoanele de trimitere trimit întregul formular către server. Puteți fie să apelați metoda click() pe WebElement, așa cum se arată mai sus, fie să utilizați metoda submit() pe orice element din formular sau pe butonul de trimitere în sine.
Când se folosește submit(), WebDriver caută în DOM pentru a identifica formularul căruia îi aparține elementul și apoi declanșează funcția sa submit.
Completa Code
Iată codul complet funcțional.
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();
}
}
Depanare
Dacă întâlniți NoSuchElementException() în timp ce căutați elemente, elementul nu este prezent în pagină în momentul în care WebDriver l-a accesat.
- Verificați din nou localizatorul folosind FirePath sau opțiunea Inspectează elementul din Chrome.
- Verificați dacă valoarea utilizată în cod diferă de valoarea curentă a elementului văzut în FirePath.
- Unele atribute sunt dinamice pentru anumite elemente. Dacă o valoare se modifică dinamic, se folosește By.xpath() sau By.cssSelector(), care sunt mai fiabile, dar puțin mai complexe.
- Uneori, problema este o condiție de așteptare; WebDriver poate executa codul înainte ca pagina să se termine de încărcat.
- Adăugați o așteptare înainte de findElement() folosind așteptări implicite sau explicite.
Rezumat
- Tabelul de mai jos prezintă un rezumat al comenzilor pentru accesarea fiecărui tip de element discutat mai sus.
| Element | Comandă | Descriere |
|---|---|---|
| Intrare Box | sendKeys() | Folosit pentru a introduce valori în casete de text. |
| clar() | Folosit pentru a șterge valoarea curentă din casetele de text. | |
| Link-uri | clic() | Folosit pentru a da clic pe link și a aștepta finalizarea încărcării paginii înainte de a trece la următoarea comandă. |
| trimiteţi butonul | Trimite() | Folosit pentru a trimite formularul prin declanșarea handlerului de trimitere al formularului părinte. |
- WebDriver permite selectarea mai multor opțiuni într-un element SELECT multiplu.
- Puteți utiliza metoda submit() pe orice element din formular. WebDriver declanșează automat funcția submit a formularului căruia îi aparține elementul.






