Element sieciowy w Selenium
โก Inteligentne podsumowanie
Element sieciowy w Selenium reprezentuje kaลผdฤ kontrolkฤ formularza jako obiekt programowalny, umoลผliwiajฤ c testerom interakcjฤ z polami tekstowymi, polami wyboru, przyciskami radiowymi i elementami przesyลania za pomocฤ metod findElement, sendKeys, click, clear i submit Java przykลady kodu.

Element sieciowy w Selenium
Formularze to podstawowe elementy internetowe, ktรณre gromadzฤ informacje od odwiedzajฤ cych witrynฤ. Formularze internetowe zawierajฤ rรณลผne elementy graficznego interfejsu uลผytkownika, takie jak pola tekstowe, pola haseล, pola wyboru, przyciski radiowe, listy rozwijane i pola wprowadzania plikรณw.
W tym samouczku wyjaลniono, jak uzyskaฤ dostฤp do kaลผdego elementu formularza za pomocฤ Selenium WebDriver z Java. Selenium hermetyzuje kaลผdy element formularza jako obiekt WebElement. Udostฤpnia API do lokalizowania elementรณw i wykonywania na nich dziaลaล, w tym wprowadzania tekstu, klikania przyciskรณw i przesyลania formularzy. Poniลผsze sekcje opisujฤ metody dostฤpne dla kaลผdego elementu formularza.
Wprowadzenie do WebElement, findElement(), findElements()
Selenium WebDriver reprezentuje prosty element formularza jako obiekt Element internetowy.
WebDriver identyfikuje elementy formularza, korzystajฤ c z rรณลผnych wลaลciwoลci elementu internetowego, w tym ID, nazwy, klasy, XPath, Tagname, selektory CSS i tekst linku.
WebDriver udostฤpnia dwie nastฤpujฤ ce metody WebElement umoลผliwiajฤ ce wyszukiwanie elementรณw:
- znajdลบElement() โ wyszukuje pojedynczy element sieciowy i zwraca go jako WebElement Selenium obiekt.
- findElements() โ zwraca listฤ obiektรณw WebElement speลniajฤ cych kryteria lokalizatora.
Poniลผszy przykลad pokazuje, jak pobraฤ pojedynczy element, pole tekstowe na stronie internetowej, jako obiekt WebElement za pomocฤ metody findElement(). Metoda findElements() sลuลผฤ ca do wyszukiwania wielu elementรณw zostanie omรณwiona w kolejnych samouczkach.
Krok 1) Zaimportuj pakiet wymagany do tworzenia obiektรณw WebElement.
Krok 2) Wywoลaj metodฤ findElement() dostฤpnฤ w klasie WebDriver, aby pobraฤ obiekt WebElement, jak pokazano poniลผej.
Selenium Wprowadลบ tekst
Pola wprowadzania danych mogฤ byฤ jednym z dwรณch typรณw:
- Pola tekstowe - Selenium pola tekstowe, ktรณre akceptujฤ wpisywane wartoลci i wyลwietlajฤ je dokลadnie tak, jak zostaลy wprowadzone.
- Pola hasลa โ pola tekstowe, ktรณre akceptujฤ wprowadzane wartoลci, ale maskujฤ je jako ciฤ g znakรณw specjalnych (najczฤลciej kropek lub gwiazdek), aby ukryฤ poufne dane wejลciowe.
Lokalizatory
Metoda findElement() przyjmuje jeden parametr, ktรณry jest lokalizatorem wskazujฤ cym na element. Rรณลผne lokalizatory, w tym By.id(), By.name(), By.xpath() i By.cssSelector(), wyszukujฤ elementy na stronie za pomocฤ ich wลaลciwoลci, takich jak id, nazwa lub ลcieลผka.
Za pomocฤ wtyczek takich jak FirePath moลผna uzyskaฤ identyfikator, ลcieลผkฤ xpath i inne wartoลci lokalizatora elementรณw.
Korzystajฤ c z przykลadowej witryny https://demo.guru99.com/test/login.htmlPoniลผszy kod lokalizuje pole tekstowe โAdres e-mailโ za pomocฤ lokalizatora identyfikatora i pole โHasลoโ za pomocฤ lokalizatora nazwy.
- Pole tekstowe e-maila znajduje siฤ wedลug identyfikatora.
- Pole hasลa znajduje siฤ wedลug nazwy.
wyลlij klucze Selenium
sendKeys() w Selenium to metoda sลuลผฤ ca do wprowadzania edytowalnej treลci w polach tekstowych i hasลa podczas wykonywania testu. Pola te sฤ identyfikowane za pomocฤ lokalizatorรณw, takich jak nazwa, klasa i identyfikator. Metoda jest dostฤpna w obiekcie WebElement. W przeciwieลstwie do metody typu, sendKeys() nie zastฤpuje istniejฤ cego tekstu w polu tekstowym.
Jak wprowadziฤ tekst w Selenium
Aby wprowadziฤ tekst do pรณl tekstowych i pรณl haseล, metoda sendKeys() jest dostฤpna w WebElement w Selenium.
Uลผywajฤ c tego samego przykลadu https://demo.guru99.com/test/login.htmlponiลผszy fragment kodu lokalizuje pole tekstowe i pole hasลa i wprowadza tekst Selenium.
- Znajdลบ pole tekstowe โAdres e-mailโ za pomocฤ lokalizatora identyfikatorรณw.
- Znajdลบ pole โHasลoโ za pomocฤ lokalizatora nazw.
- Wprowadลบ tekst w polu โAdres e-mailโ za pomocฤ Selenium metoda sendKeys.
- Wprowadลบ hasลo w polu โHasลoโ za pomocฤ metody sendKeys().
Usuwanie wartoลci wejลciowych Boxes
jasny() Metoda usuwa tekst znajdujฤ cy siฤ wewnฤ trz pola wprowadzania danych. Ta metoda nie wymaga parametru. Poniลผszy fragment usuwa tekst z pรณl Adres e-mail lub Hasลo.
Selenium Kliknij Przyciski
Selenium Dostฤp do przycisku klikniฤcia uzyskuje siฤ za pomocฤ metody click().
W powyลผszym przykลadzie
- Znajdลบ przycisk Zaloguj siฤ.
- Aby uwierzytelniฤ siฤ, kliknij przycisk โZaloguj siฤโ na stronie logowania witryny.
Selenium Przyciski Przeลlij
Przyciski โPrzeลlijโ wysyลajฤ caลy formularz na serwer. Moลผesz wywoลaฤ metodฤ click() na elemencie WebElement, jak pokazano powyลผej, lub uลผyฤ metody submit() na dowolnym elemencie formularza lub na samym przycisku โPrzeลlijโ.
Po uลผyciu funkcji submit() WebDriver przeszukuje DOM w celu zidentyfikowania formularza, do ktรณrego naleลผy element, a nastฤpnie uruchamia funkcjฤ submit.
Absolutna Code
Oto kompletny, dziaลajฤ cy kod.
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();
}
}
Rozwiฤ zywanie problemรณw
Jeลผeli podczas wyszukiwania elementรณw napotkasz wyjฤ tek NoSuchElementException(), oznacza to, ลผe element nie znajduje siฤ na stronie w momencie, gdy WebDriver uzyskuje do niego dostฤp.
- Sprawdลบ ponownie swรณj lokalizator za pomocฤ FirePath lub opcji Zbadaj element w Chrome.
- Sprawdลบ, czy wartoลฤ uลผyta w kodzie rรณลผni siฤ od bieลผฤ cej wartoลci elementu widocznej w FirePath.
- Niektรณre atrybuty sฤ dynamiczne dla okreลlonych elementรณw. Jeลli wartoลฤ zmienia siฤ dynamicznie, skorzystaj z By.xpath() lub By.cssSelector(), ktรณre sฤ bardziej niezawodne, ale nieco bardziej zลoลผone.
- Czasami problemem jest warunek oczekiwania; WebDriver moลผe wykonaฤ kod przed zakoลczeniem ลadowania strony.
- Dodaj oczekiwanie przed findElement() przy uลผyciu niejawnych lub jawnych oczekiwaล.
Podsumowanie
- Poniลผsza tabela podsumowuje polecenia umoลผliwiajฤ ce dostฤp do kaลผdego typu elementu omรณwionego powyลผej.
| Element | Command | OPIS |
|---|---|---|
| Wkลad Box | sendKeys () | Sลuลผy do wprowadzania wartoลci do pรณl tekstowych. |
| jasny() | Sลuลผy do czyszczenia pรณl tekstowych z ich bieลผฤ cej wartoลci. | |
| Linki | Kliknij() | Sลuลผy do klikniฤcia ลฤ cza i oczekiwania na zakoลczenie ลadowania strony przed przejลciem do nastฤpnego polecenia. |
| Umieลฤ przycisk | skลadaฤ() | Sลuลผy do wysลania formularza poprzez wyzwolenie procedury przesyลania formularza nadrzฤdnego. |
- WebDriver umoลผliwia wybรณr wiฤcej niลผ jednej opcji w wielokrotnym elemencie SELECT.
- Moลผesz uลผyฤ metody submit() dla dowolnego elementu w formularzu. WebDriver automatycznie uruchamia funkcjฤ submit formularza, do ktรณrego naleลผy dany element.






