WebElement sees Selenium: TekstBox, nupp, sendkeys(), klõps()

WebElement sees Selenium

Vormid on peamised veebielemendid veebisaidi külastajatelt teabe saamiseks. Veebivormidel on erinevad GUI elemendid, nagu tekstikastid, parooliväljad, märkeruudud, raadionupud, rippmenüüd, failisisendid jne.

Vaatame, kuidas nendele erinevatele vormielementidele juurde pääseda Selenium Veebidraiver koos Java. Selenium kapseldab iga vormielemendi WebElementi objektina. See pakub API-t elementide leidmiseks ja nendega seotud toimingute tegemiseks, nagu teksti sisestamine tekstikasti, nuppude klõpsamine jne. Näeme meetodeid, mis on saadaval igale vormielemendile juurdepääsuks.

Sissejuhatus WebElementi, findElement(), findElements()

Selenium Web Driver kapseldab lihtsa vormielemendi objektina WebElement.

On mitmeid tehnikaid, mille abil WebDriver tuvastab vormielemendid veebielementide erinevate atribuutide alusel, nagu ID, nimi, klass, XPath, sildinimi, CSS-i valijad, lingi tekst jne.

Veebidraiver pakub elementide leidmiseks kahte järgmist WebElement meetodit.

  • leia element() – leiab üksiku veebielemendi ja naaseb veebielemendina Selenium objekt
  • leia elemente () – tagastab lokaatori kriteeriumidele vastavate WebElement objektide loendi.

Vaatame koodijuppe, et saada üks element – ​​tekstiväli veebilehel WebElementi objektina, kasutades meetodit findElement(). Mitme elemendi leidmise meetodit findElements () käsitleme järgmistes õpetustes.

Step 1) Veebielementide objektide loomiseks peame selle paketi importima

Sissejuhatus veebielemendisse FindElement,FindElements

Step 2) Peame kutsuma WebDriveri klassis saadaoleva meetodi findElement() ja hankima WebElementi objekti.

Vaadake allpool, et näha, kuidas seda tehakse.

Selenium Sisesta tekst

Sisestuskastid viitavad ühele neist kahest tüübist:

  1. Tekstiväljad- Selenium sisestustekstikastid, mis aktsepteerivad trükitud väärtusi ja näitavad neid sellisena, nagu nad on.
  2. Parooliväljad– tekstikastid, mis aktsepteerivad trükitud väärtusi, kuid maskeerivad need erimärkidena (tavaliselt punktid ja tärnid), et vältida tundlike väärtuste kuvamist.

    Selenium Sisesta tekst

Lokaatorid

Meetod findElement() võtab ühe parameetri, mis on elemendi lokaator. Erinevad lokaatorid, nagu By.id(), By.name(), By.xpath(), By.CSSSelector() jne, otsivad lehel olevaid elemente nende atribuutide abil, nagu „““ id, nimi või tee jne.

Elementide ID, xpath jne hankimisel saate abi saamiseks kasutada pistikprogramme, nagu Fire path.

Kasutades näidissaiti https://demo.guru99.com/test/login.html allpool on kood tekstivälja "E-posti aadress" leidmiseks ID-lokaatori abil ja välja "Parool" leidmiseks nimelokaatori abil.

Lokaatorid

  1. Meili tekstiväli asub ID-ga
  2. Parooliväli asub nime järgi

saatke võtmed sisse Selenium

sendkeys() sisse Selenium on meetod, mida kasutatakse muudetava sisu sisestamiseks teksti- ja parooliväljadele testimise ajal. Need väljad tuvastatakse lokaatorite (nt nimi, klass, ID jne) abil. See on veebielemendis saadaval olev meetod. Erinevalt tüübimeetodist ei asenda sendkeys() meetod üheski tekstikastis olemasolevat teksti.

Kuidas teksti sisestada Selenium

Teksti sisestamiseks tekstiväljadele ja parooliväljadele on sendKeys() meetod, mis on saadaval veebielemendis Selenium.

Kasutades sama näidet https://demo.guru99.com/test/login.html Siit leiate tekstivälja ja parooli ning sisestame teksti järgmiselt Selenium.

Tekst sisse Selenium

  1. Leidke ID-lokaatori abil tekstiväli „E-posti aadress”.
  2. Leidke nimeotsija abil väli „Parool”.
  3. Sisestage tekst väljale "E-posti aadress", kasutades nuppu Selenium saatmisvõtmete meetod.
  4. Sisestage parool väljale "Parool", kasutades meetodit sendKeys().

Väärtuste kustutamine sisendist Boxes

. selge () meetodit kasutatakse sisestuskasti teksti kustutamiseks. See meetod ei vaja parameetrit. Allolev koodilõik kustutab teksti väljadelt E-post või Parool

Väärtuste kustutamine sisendist Boxes

Selenium Klõpsake nuppu Nupud

. Selenium kliki nupule pääseb juurde meetodi click() abil.

Ülaltoodud näites

  1. Leidke sisselogimiseks nupp
  2. Saidile sisselogimiseks klõpsake saidi sisselogimislehel nuppu "Sisselogimine".

Selenium Klõpsake nuppu Nupud

Selenium Esitamisnupud

Esitamisnuppe kasutatakse kogu vormi serverisse saatmiseks. Saame kasutada veebielemendil klõpsamismeetodit () nagu tavalist nuppu, nagu oleme eespool teinud, või kasutada meetodit Esita () mis tahes vormis oleva veebielemendi või esitamisnupu puhul.

Selenium Esitamisnupud

Kui kasutatakse faili(d), otsib WebDriver DOM-i, et teada saada, millisele vormile element kuulub, ja käivitab seejärel esitamisfunktsiooni.

Täielik kood

Siin on täielik töökood

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();		
        		
    }		
}

Probleemid

Kui kohtate elementide otsimisel funktsiooni NoSuchElementException(), tähendab see, et elementi ei leitud lehel kohas, kus veebidraiver lehele ligi pääses.

  1. Kontrollige oma lokaatorit uuesti, kasutades Chrome'i Firepathi või Inspect Elementi.
  2. Kontrollige, kas koodis kasutatud väärtus erineb praegu Firepathi elemendi väärtusest.
  3. Mõned omadused on mõne elemendi puhul dünaamilised. Kui leiate, et väärtus on erinev ja muutub dünaamiliselt, kaaluge funktsiooni By.xpath() või By.cssSelector() kasutamist, mis on usaldusväärsemad, kuid keerukamad.
  4. Mõnikord võib see olla ka ootamisprobleem, st veebidraiver käivitas teie koodi isegi enne lehe täielikku laadimist jne.
  5. Lisage ooteaeg enne findElement()-i, kasutades kaudset või selgesõnalist ootamist.

kokkuvõte

  • Allolev tabel võtab kokku käsud, mis võimaldavad juurdepääsu igale ülalkirjeldatud tüüpi elemendile
Element käsk Kirjeldus
Sisend Box sendKeys() kasutatakse väärtuste sisestamiseks tekstikastidesse
selge () kasutatakse tekstikastide praeguse väärtuse kustutamiseks
Lingid kliki () kasutatakse lingil klõpsamiseks ja lehe laadimise ootamiseks, enne kui jätkate järgmise käsuga.
esitada Button esita ()
  • WebDriver võimaldab valida mitmes SELECT elemendis rohkem kui ühe valiku.
  • Saate kasutada meetodit submit() mis tahes vormi elemendi puhul. WebDriver käivitab automaatselt vormi, kuhu see element kuulub, esitamisfunktsiooni.