WebElement i Selenium

WebElement i Selenium

Skjemaer er de grunnleggende webelementene for รฅ motta informasjon fra besรธkende pรฅ nettstedet. Nettskjemaer har forskjellige GUI-elementer som tekstbokser, passordfelter, avmerkingsbokser, radioknapper, rullegardiner, filinndata, etc.

Vi vil se hvordan du fรฅr tilgang til disse forskjellige skjemaelementene ved hjelp av Selenium Web-driver med Java. Selenium innkapsler hvert formelement som et objekt av WebElement. Det gir API for รฅ finne elementene og iverksette tiltak pรฅ dem som รฅ skrive inn tekst i tekstbokser, klikke pรฅ knappene osv. Vi vil se metodene som er tilgjengelige for รฅ fรฅ tilgang til hvert skjemaelement.

Introduksjon til WebElement, findElement(), findElements()

Selenium Web Driver innkapsler et enkelt skjemaelement som et objekt av WebElement.

Det er forskjellige teknikker som WebDriver identifiserer skjemaelementene basert pรฅ de forskjellige egenskapene til webelementene som ID, Navn, Klasse, XPath, Tagname, CSS Selectors, link Text, etc.

Web Driver gir fรธlgende to WebElement-metoder for รฅ finne elementene.

  • findElement() โ€“ finner et enkelt webelement og returnerer som et WebElement Selenium gjenstand.
  • findElements() โ€“ returnerer en liste over WebElement-objekter som samsvarer med lokaliseringskriteriene.

La oss se kodebitene for รฅ fรฅ et enkelt element โ€“ โ€‹โ€‹tekstfelt pรฅ en nettside som et objekt av WebElement ved รฅ bruke findElement()-metoden. Vi skal dekke findElements()-metoden for รฅ finne flere elementer i pรฅfรธlgende opplรฆringsprogrammer.

Trinn 1) Vi mรฅ importere denne pakken for รฅ lage objekter av Web Elements

Introduksjon til WebElement FindElement,FindElements

Trinn 2) Vi mรฅ kalle findElement()-metoden tilgjengelig pรฅ WebDriver-klassen og fรฅ et objekt av WebElement.

Se nedenfor for รฅ se hvordan det gjรธres.

Selenium Skriv inn tekst

Inndatabokser refererer til en av disse to typene:

  1. Tekstfelt- Selenium skriv inn tekstbokser som godtar innskrevne verdier og viser dem som de er.
  2. Passordfeltโ€“ tekstbokser som godtar innskrevne verdier, men maskerer dem som en serie spesialtegn (vanligvis prikker og stjerner) for รฅ unngรฅ at sensitive verdier vises.

    Selenium Skriv inn tekst

Lokalister

Metoden findElement() tar รฉn parameter som er en locator til elementet. Ulike locatorer som By.id(), By.name(), By.xpath(), By.CSSSelector() osv. finner elementene pรฅ siden ved รฅ bruke egenskapene deres som โ€œโ€œโ€œ id, navn eller bane osv.

Du kan bruke plugins som Fire path for รฅ fรฅ hjelp med รฅ fรฅ id, xpath osv. til elementene.

Ved รฅ bruke eksempelsiden https://demo.guru99.com/test/login.html gitt nedenfor er koden for รฅ finne "E-postadresse"-tekstfeltet ved รฅ bruke id-sรธkeren og "Passord"-feltet ved รฅ bruke navnsรธkeren.

Lokalister

  1. E-posttekstfeltet er plassert ved ID
  2. Passordfeltet er plassert ved navn

sendnรธkler inn Selenium

sendkeys() i Selenium er en metode som brukes til รฅ legge inn redigerbart innhold i tekst- og passordfeltene under testkjรธring. Disse feltene identifiseres ved hjelp av locatorer som navn, klasse, id osv. Det er en metode som er tilgjengelig pรฅ webelementet. I motsetning til typemetoden, erstatter ikke sendkeys()-metoden eksisterende tekst i noen tekstboks.

Hvordan skrive inn tekst Selenium

For รฅ skrive inn tekst i tekstfeltene og passordfeltene, er sendKeys() metoden tilgjengelig pรฅ WebElement i Selenium.

Bruker samme eksempel pรฅ https://demo.guru99.com/test/login.html nettsted, her er hvordan vi finner tekstfeltet og passordfeltene og skriver inn tekst Selenium.

Tekst inn Selenium

  1. Finn tekstfeltet "E-postadresse" ved รฅ bruke id-sรธkeren.
  2. Finn "Passord"-feltet ved รฅ bruke navnesรธkeren
  3. Skriv inn tekst i "E-postadresse" ved รฅ bruke Selenium sendkeys-metoden.
  4. Skriv inn et passord i "Passord"-feltet ved รฅ bruke sendKeys()-metoden.

Sletting av verdier i inndata Boxes

Ocuco klar() metoden brukes til รฅ slette teksten i en inndataboks. Denne metoden trenger ikke en parameter. Kodebiten nedenfor vil fjerne teksten fra E-post- eller Passord-feltene

Sletting av verdier i inndata Boxes

Selenium Klikk Knapper

Ocuco Selenium klikk-knappen kan nรฅs ved รฅ bruke click()-metoden.

I eksemplet ovenfor

  1. Finn knappen for รฅ logge pรฅ
  2. Klikk pรฅ "Logg pรฅ"-knappen pรฅ innloggingssiden til nettstedet for รฅ logge inn pรฅ nettstedet.

Selenium Klikk Knapper

Selenium Send inn-knapper

Send-knapper brukes til รฅ sende inn hele skjemaet til serveren. Vi kan enten bruke klikk ()-metoden pรฅ webelementet som en vanlig knapp som vi har gjort ovenfor eller bruke submit ()-metoden pรฅ et hvilket som helst webelement i skjemaet eller pรฅ selve submit-knappen.

Selenium Send inn-knapper

Nรฅr submit() brukes, vil WebDriver slรฅ opp DOM-en for รฅ vite hvilken form elementet tilhรธrer, og deretter utlรธse submit-funksjonen.

Komplett Code

Her er den komplette arbeidskoden

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 finner elementer, betyr det at elementet ikke finnes pรฅ siden pรฅ det tidspunktet webdriveren รฅpnet siden.

  1. Sjekk lokatoren din igjen ved รฅ bruke Firepath eller Inspect Element i Chrome.
  2. Sjekk om verdien du brukte i koden er forskjellig fra den for elementet i Firepath nรฅ.
  3. Noen egenskaper er dynamiske for fรฅ elementer. Hvis du finner ut at verdien er annerledes og endres dynamisk, bรธr du vurdere รฅ bruke By.xpath() eller By.cssSelector() som er mer pรฅlitelige, men komplekse mรฅter.
  4. Noen ganger kan det ogsรฅ vรฆre et venteproblem, det vil si at webdriveren utfรธrte koden din selv fรธr siden ble fullstendig lastet, osv.
  5. 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 diskutert ovenfor
Element Kommando Tekniske beskrivelser
Input Box sendKeys() brukes til รฅ legge inn verdier i tekstbokser
klar() brukes til รฅ fjerne tekstbokser for gjeldende verdi
lenker klikk() brukes til รฅ klikke pรฅ koblingen og vente til sideinnlastingen er fullfรธrt fรธr du fortsetter til neste kommando.
Send Button send inn()
  • 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 vil automatisk utlรธse innsendingsfunksjonen til skjemaet der det elementet tilhรธrer.

Oppsummer dette innlegget med: