WebElement u Selenium: TekstBox, Button, sendkeys(), click()

WebElement u Selenium

Obrasci su temeljni web elementi za primanje informacija od posjetitelja web stranice. Web obrasci imaju različite GUI elemente kao što su tekstualni okviri, polja za zaporke, okviri za potvrdu, radio gumbi, padajući izbornici, unosi datoteka itd.

Vidjet ćemo kako pristupiti ovim različitim elementima obrasca pomoću Selenium Web upravljački program sa Java. Selenium enkapsulira svaki element obrasca kao objekt WebElementa. Omogućuje API za pronalaženje elemenata i poduzimanje radnji na njima poput unosa teksta u tekstne okvire, klikanja na gumbe itd. Vidjet ćemo metode koje su dostupne za pristup svakom elementu obrasca.

Uvod u WebElement, findElement(), findElements()

Selenium Web Driver enkapsulira jednostavan element obrasca kao objekt WebElement.

Postoje različite tehnike pomoću kojih WebDriver identificira elemente obrasca na temelju različitih svojstava web elemenata kao što su ID, naziv, klasa, XPath, naziv oznake, CSS birači, tekst veze itd.

Web Driver pruža sljedeće dvije WebElement metode za pronalaženje elemenata.

  • pronađiElement() – pronalazi jedan web element i vraća se kao WebElement Selenium objekt.
  • pronađiElemente() – vraća popis WebElement objekata koji odgovaraju kriterijima lokatora.

Pogledajmo isječke koda za dobivanje jednog elementa – Tekstualno polje na web stranici kao objekt WebElementa pomoću metode findElement(). Pokrit ćemo metodu findElements() za pronalaženje višestrukih elemenata u narednim vodičima.

Korak 1) Moramo uvesti ovaj paket da bismo stvorili objekte Web elemenata

Uvod u WebElement FindElement, FindElements

Korak 2) Moramo pozvati metodu findElement() koja je dostupna na klasi WebDriver i dobiti objekt WebElement.

U nastavku pogledajte kako se to radi.

Selenium Unos teksta

Okviri za unos odnose se na jednu od ove dvije vrste:

  1. Tekstna polja- Selenium okvire za unos teksta koji prihvaćaju upisane vrijednosti i prikazuju ih onakvima kakve jesu.
  2. Polja za lozinku– tekstni okviri koji prihvaćaju upisane vrijednosti, ali ih maskiraju kao niz posebnih znakova (obično točkica i zvjezdica) kako bi se izbjeglo prikazivanje osjetljivih vrijednosti.

    Selenium Unos teksta

Lokatori

Metoda findElement() uzima jedan parametar koji je lokator elementa. Različiti lokatori poput By.id(), By.name(), By.xpath(), By.CSSSelector() itd. lociraju elemente na stranici pomoću njihovih svojstava kao što su „““ id, naziv ili put itd.

Možete koristiti dodatke kao što je Fire path za pomoć pri dobivanju ID-a, xpath-a itd. elemenata.

Koristeći primjer stranice https://demo.guru99.com/test/login.html u nastavku je kod za lociranje tekstualnog polja "Adresa e-pošte" pomoću lokatora ID-a i polja "Lozinka" pomoću lokatora imena.

Lokatori

  1. Polje teksta e-pošte nalazi se uz ID
  2. Polje za lozinku nalazi se po imenu

poslati ključeve u Selenium

sendkeys() u Selenium je metoda koja se koristi za unos sadržaja koji se može uređivati ​​u polja za tekst i lozinku tijekom izvođenja testa. Ta se polja identificiraju pomoću lokatora kao što su naziv, klasa, ID, itd. To je metoda dostupna na web elementu. Za razliku od metode tipa, metoda sendkeys() ne zamjenjuje postojeći tekst ni u jednom tekstualnom okviru.

Kako unijeti tekst Selenium

Za unos teksta u tekstualna polja i polja zaporke, sendKeys() je metoda dostupna na WebElementu u Selenium.

Koristeći isti primjer https://demo.guru99.com/test/login.html web-mjestu, evo kako možemo pronaći polje za tekst i polja za lozinku i unijeti tekst u njih Selenium.

Tekst u Selenium

  1. Pronađite tekstualno polje "Adresa e-pošte" pomoću ID lokatora.
  2. Pronađite polje "Lozinka" pomoću lokatora imena
  3. Unesite tekst u "Adresu e-pošte" pomoću Selenium sendkeys metoda.
  4. Unesite lozinku u polje "Lozinka" pomoću metode sendKeys().

Brisanje vrijednosti u unosu Boxes

The čisto() Metoda se koristi za brisanje teksta u polju za unos. Ova metoda ne treba parametar. Isječak koda u nastavku će izbrisati tekst iz polja Email ili Password

Brisanje vrijednosti u unosu Boxes

Selenium Pritisnite Gumbi

The Selenium gumbu click može se pristupiti pomoću metode click().

U gornjem primjeru

  1. Pronađite gumb za prijavu
  2. Kliknite na gumb "Prijava" na stranici za prijavu na stranicu za prijavu na stranicu.

Selenium Pritisnite Gumbi

Selenium Gumbi za slanje

Gumbi za slanje koriste se za slanje cijelog obrasca na poslužitelj. Možemo upotrijebiti metodu click () na web elementu kao normalan gumb kao što smo učinili gore ili koristiti submit () metodu na bilo kojem web elementu u obrascu ili na samom gumbu za slanje.

Selenium Gumbi za slanje

Kada se koristi submit(), WebDriver će potražiti DOM kako bi znao kojem obliku element pripada, a zatim pokrenuti svoju funkciju slanja.

Kompletan kod

Ovdje je kompletan radni 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();		
        		
    }		
}

Rješavanje problema

Ako naiđete na NoSuchElementException() tijekom pronalaženja elemenata, to znači da element nije pronađen na stranici u trenutku kada je web upravljački program pristupio stranici.

  1. Ponovno provjerite svoj lokator koristeći Firepath ili Inspect Element u Chromeu.
  2. Provjerite razlikuje li se vrijednost koju ste koristili u kodu od one za element u Firepathu.
  3. Neka svojstva su dinamička za nekoliko elemenata. U slučaju da ustanovite da je vrijednost drugačija i da se dinamički mijenja, razmislite o upotrebi By.xpath() ili By.cssSelector() koji su pouzdaniji ali složeniji načini.
  4. Ponekad to može biti i problem čekanja, tj. web upravljački program je izvršio vaš kod čak i prije nego što se stranica potpuno učitala, itd.
  5. Dodajte čekanje prije findElement() koristeći implicitna ili eksplicitna čekanja.

rezime

  • Donja tablica sažima naredbe za pristup svakoj vrsti elementa o kojoj je riječ gore
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 vezu i čekanje da se završi učitavanje stranice prije prelaska na sljedeću naredbu.
Pošalji Button podnijeti()
  • WebDriver omogućuje odabir više od jedne opcije u višestrukom SELECT elementu.
  • Možete koristiti metodu submit() na bilo kojem elementu unutar forme. WebDriver će automatski pokrenuti funkciju slanja obrasca kojem taj element pripada.