WebElement i Selenium
โก Smart oppsummering
WebElement i Selenium representerer hver skjemakontroll som et programmerbart objekt, slik at testere kan samhandle med tekstfelt, avmerkingsbokser, radioknapper og sende elementer ved hjelp av findElement, sendKeys, click, clear og submit-metodene gjennom Java kodeeksempler.

WebElement i Selenium
Skjemaer er de grunnleggende webelementene som samler inn informasjon fra besรธkende pรฅ nettstedet. Nettskjemaer inkluderer forskjellige GUI-kontroller som tekstbokser, passordfelt, avmerkingsbokser, radioknapper, rullegardinmenyer og filinndata.
Denne veiledningen forklarer hvordan du fรฅr tilgang til hvert skjemaelement ved hjelp av Selenium WebDriver med Java. Selenium innkapsler hvert formelement som et objekt av WebElement. Den tilbyr et API for รฅ finne elementer og handle ut fra dem, inkludert รฅ skrive inn tekst, klikke pรฅ knapper og sende inn skjemaer. Avsnittene nedenfor dekker metodene som er tilgjengelige for hvert skjemaelement.
Introduksjon til WebElement, findElement(), findElements()
Selenium WebDriver representerer et enkelt formelement som et objekt for WebElement.
WebDriver identifiserer skjemaelementer ved hjelp av forskjellige egenskaper for webelementet, inkludert ID, navn, klasse XPath, Tagnavn, CSS-selektorer og lenketekst.
WebDriver tilbyr fรธlgende to WebElement-metoder for รฅ finne elementer:
- findElement() โ finner et enkelt webelement og returnerer det som et WebElement Selenium gjenstand.
- findElements() โ returnerer en liste over WebElement-objekter som samsvarer med lokaliseringskriteriene.
Eksemplet nedenfor viser hvordan du henter et enkelt element, et tekstfelt pรฅ en nettside, som et WebElement-objekt ved hjelp av findElement()-metoden. findElements()-metoden for รฅ finne flere elementer dekkes i senere veiledninger.
Trinn 1) Importer pakken som kreves for รฅ opprette WebElement-objekter.
Trinn 2) Kall findElement()-metoden som er tilgjengelig i WebDriver-klassen for รฅ hente et WebElement-objekt, som vist nedenfor.
Selenium Skriv inn tekst
Inndatabokser refererer til en av disse to typene:
- Tekstfelt - Selenium tekstbokser som godtar skrevne verdier og viser dem nรธyaktig slik de er skrevet inn.
- Passordfelt โ tekstbokser som godtar skrevne verdier, men maskerer dem som en serie spesialtegn (vanligvis prikker eller stjerner) for รฅ skjule sensitiv inndata.
Lokalister
findElement()-metoden tar รฉn parameter, som er en locator som peker til elementet. Ulike locatorer, inkludert By.id(), By.name(), By.xpath() og By.cssSelector(), finner elementer pรฅ siden ved hjelp av egenskapene deres, som id, navn eller sti.
Du kan bruke programtillegg som FirePath for รฅ hente ID-, XPATH- og andre locator-verdier for elementer.
Ved รฅ bruke eksempelsiden https://demo.guru99.com/test/login.html, koden nedenfor finner tekstfeltet ยซE-postadresseยป ved hjelp av ID-lokaliseringen og ยซPassordยป-feltet ved hjelp av navnelokaliseringen.
- E-posttekstfeltet er plassert etter ID.
- Passordfeltet er plassert etter navn.
sendnรธkler inn Selenium
sendKeys() i Selenium er en metode som brukes til รฅ legge inn redigerbart innhold i tekst- og passordfelt under testkjรธring. Disse feltene identifiseres gjennom lokatorer som navn, klasse og id. Metoden er tilgjengelig pรฅ WebElement-objektet. I motsetning til type-metoden erstatter ikke sendKeys() den eksisterende teksten i en tekstboks.
Hvordan skrive inn tekst Selenium
For รฅ skrive inn tekst i tekstfelt og passordfelt, er sendKeys() metoden som er tilgjengelig pรฅ WebElement i Selenium.
Bruker samme eksempel pรฅ https://demo.guru99.com/test/login.html, kodebiten nedenfor finner tekstfeltet og passordfeltet og skriver inn tekst i Selenium.
- Finn tekstfeltet ยซE-postadresseยป ved hjelp av ID-sรธkeren.
- Finn ยซPassordยป-feltet ved hjelp av navnesรธkeren.
- Skriv inn tekst i "E-postadresse" ved รฅ bruke Selenium sendKeys-metoden.
- Skriv inn et passord i "Passord"-feltet ved รฅ bruke sendKeys()-metoden.
Sletting av verdier i inndata Boxes
Ocuco klar() Metoden sletter teksten i en inndataboks. Denne metoden trenger ikke en parameter. Kodeutdraget nedenfor fjerner teksten fra feltene for e-post eller passord.
Selenium Klikk Knapper
Ocuco Selenium klikkknappen nรฅs ved hjelp av click()-metoden.
I eksemplet ovenfor
- Finn knappen for รฅ logge inn.
- Klikk pรฅ ยซLogg innยป-knappen pรฅ nettstedets innloggingsside for รฅ autentisere.
Selenium Send inn-knapper
Send-knapper sender hele skjemaet til serveren. Du kan enten kalle click()-metoden pรฅ WebElement, som vist ovenfor, eller bruke submit()-metoden pรฅ et hvilket som helst element i skjemaet eller pรฅ selve send-knappen.
Nรฅr submit() brukes, slรฅr WebDriver opp DOM-en for รฅ identifisere skjemaet som elementet tilhรธrer, og utlรธser deretter submit-funksjonen.
Komplett Code
Her er den komplette fungerende koden.
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();
}
}
Feilsรธking
Hvis du stรธter pรฅ NoSuchElementException() mens du sรธker etter elementer, finnes ikke elementet pรฅ siden i det รธyeblikket WebDriver รฅpnet det.
- Sjekk posisjoneringsverktรธyet ditt pรฅ nytt ved hjelp av FirePath eller alternativet Inspiser element i Chrome.
- Sjekk om verdien som brukes i koden er forskjellig fra den gjeldende verdien til elementet som vises i FirePath.
- Noen attributter er dynamiske for visse elementer. Hvis en verdi endres dynamisk, bytt til By.xpath() eller By.cssSelector(), som er mer pรฅlitelige, men litt mer komplekse.
- Noen ganger er problemet en ventetilstand; WebDriver kan kjรธre koden fรธr siden er ferdig lastet inn.
- Legg til en ventetid fรธr findElement() ved รฅ bruke implisitte eller eksplisitte ventetider.
Sammendrag
- Tabellen nedenfor oppsummerer kommandoene for รฅ fรฅ tilgang til hver type element som er omtalt ovenfor.
| Element | Kommando | Tekniske beskrivelser |
|---|---|---|
| Input Box | sendKeys() | Brukes til รฅ legge inn verdier i tekstbokser. |
| klar() | Brukes til รฅ fjerne gjeldende verdi fra tekstbokser. | |
| lenker | klikk() | Brukes til รฅ klikke pรฅ lenken og vente til siden er lastet inn fรธr du gรฅr videre til neste kommando. |
| Send Button | send inn() | Brukes til รฅ sende inn skjemaet ved รฅ utlรธse det overordnede skjemaets innsendingsbehandler. |
- WebDriver tillater valg av mer enn ett alternativ i et multippel SELECT-element.
- Du kan bruke submit()-metoden pรฅ et hvilket som helst element i skjemaet. WebDriver utlรธser automatisk submit-funksjonen til skjemaet som elementet tilhรธrer.






