WebElement be Selenium: SzövegBox, Button, sendkeys(), click()

WebElement be Selenium

Az űrlapok az alapvető webelemek, amelyek információt kapnak a webhely látogatóitól. A webes űrlapok különböző grafikus felhasználói felülettel rendelkeznek, például szövegdobozok, jelszómezők, jelölőnégyzetek, választógombok, legördülő menük, fájlbevitelek stb.

Meglátjuk, hogyan érhetjük el ezeket a különböző űrlapelemeket a használatával Selenium Web-illesztőprogram Java. Selenium minden űrlapelemet a WebElement objektumaként tartalmaz. API-t biztosít az elemek megtalálásához és műveletek végrehajtásához, mint például szöveg beírása a szövegmezőkbe, gombok kattintása stb. Látni fogjuk az egyes űrlapelemek eléréséhez elérhető módszereket.

A WebElement bemutatása, findElement(), findElements()

Selenium A Web Driver egy egyszerű űrlapelemet foglal magába az objektumként WebElement.

Különféle technikák léteznek, amelyek segítségével a WebDriver azonosítja az űrlapelemeket a webes elemek különböző tulajdonságai alapján, például azonosító, név, osztály, XPath, címkenév, CSS-választók, hivatkozási szöveg stb.

A Web Driver a következő két WebElement módszert kínálja az elemek megtalálásához.

  • findElement() – egyetlen webelemet talál, és WebElementként tér vissza Selenium tárgy.
  • FindElements() – a helymeghatározó feltételeknek megfelelő WebElement objektumok listáját adja vissza.

Lássuk a kódrészleteket, hogy egyetlen elemet kapjunk – a szövegmezőt a weboldalon a WebElement objektumaként a findElement() metódus segítségével. A több elem megkeresésére szolgáló findElements() módszerrel a következő oktatóanyagokban fogunk foglalkozni.

Step 1) Ezt a csomagot importálnunk kell a Web Elements objektumok létrehozásához

A WebElement bemutatása FindElement,FindElements

Step 2) Meg kell hívnunk a WebDriver osztályban elérhető findElement() metódust, és be kell szereznünk a WebElement objektumát.

Az alábbiakban megtudhatja, hogyan történik.

Selenium Szöveg bevitele

A beviteli mezők a következő két típus valamelyikére utalnak:

  1. Szövegmezők- Selenium beviteli szövegmezők, amelyek elfogadják a beírt értékeket, és úgy jelenítik meg őket, ahogy vannak.
  2. Jelszómezők– szövegdobozok, amelyek elfogadják a beírt értékeket, de speciális karakterek sorozataként (általában pontok és csillagok) maszkolja őket, hogy elkerüljék az érzékeny értékek megjelenítését.

    Selenium Szöveg bevitele

Helymeghatározók

A findElement() metódus egy paramétert vesz fel, amely az elem helymeghatározója. Különböző lokátorok, mint például By.id(), By.name(), By.xpath(), By.CSSSelector() stb., megkeresik az elemeket az oldalon olyan tulajdonságaik segítségével, mint az „““ azonosító, név vagy elérési út stb.

Használhat olyan bővítményeket, mint a Fire path, hogy segítséget kapjon az elemek azonosítójának, xpath-ának stb.

A példaoldal segítségével https://demo.guru99.com/test/login.html Az alábbiakban található kód az „E-mail cím” szövegmező megtalálásához az id lokátor segítségével és a „Jelszó” mező a névkereső segítségével.

Helymeghatározók

  1. Az e-mail szövegmezője az Id
  2. A jelszó mező név szerint található

küldje be a kulcsokat Selenium

sendkeys() in Selenium a tesztvégrehajtás során a szöveges és jelszómezőkbe szerkeszthető tartalom megadására szolgáló módszer. Ezeket a mezőket olyan helymeghatározók azonosítják, mint a név, az osztály, az azonosító stb. Ez a webelemben elérhető metódus. A type metódussal ellentétben a sendkeys() metódus nem cseréli le a meglévő szöveget egyetlen szövegdobozban sem.

Hogyan írjunk be szöveget Selenium

Szöveg beírásához a szövegmezőkbe és a jelszómezőkbe a sendKeys() metódus elérhető a WebElementben Selenium.

Ugyanazt a példát használva https://demo.guru99.com/test/login.html webhelyen, így találjuk meg a Szöveg és a Jelszó mezőket, és írjuk be a szöveget Selenium.

Szöveg be Selenium

  1. Keresse meg az „E-mail cím” szövegmezőt az azonosítókereső segítségével.
  2. Keresse meg a „Jelszó” mezőt a névkereső segítségével
  3. A gombbal írjon be szöveget az „E-mail cím” mezőbe Selenium sendkeys módszer.
  4. Írjon be egy jelszót a „Password” mezőbe a sendKeys() metódussal.

Értékek törlése a bevitelben Boxes

A egyértelmű() módszer a szöveg törlésére szolgál a beviteli mezőben. Ehhez a módszerhez nincs szükség paraméterre. Az alábbi kódrészlet törli a szöveget az E-mail vagy a Jelszó mezőkből

Értékek törlése a bevitelben Boxes

Selenium Kattintson a Gombokra

A Selenium click gomb a click() metódussal érhető el.

A fenti példában

  1. Keresse meg a Bejelentkezés gombot
  2. Kattintson a „Bejelentkezés” gombra az oldal bejelentkezési oldalán az oldalra való bejelentkezéshez.

Selenium Kattintson a Gombokra

Selenium Beküldő gombok

A Submit gombok segítségével a teljes űrlapot elküldheti a szerverre. Használhatjuk a click () metódust a webes elemen, mint egy normál gombon, ahogy fent tettük, vagy használhatjuk a submit () metódust bármely webelemen az űrlapon vagy magán a küldés gombon.

Selenium Beküldő gombok

A submit() használatakor a WebDriver megkeresi a DOM-ot, hogy megtudja, melyik űrlaphoz tartozik az elem, majd elindítja a küldés funkciót.

Teljes kód

Itt van a teljes működő kód

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

Hibaelhárítás

Ha az elemek keresése közben a NoSuchElementException() funkcióval találkozik, az azt jelenti, hogy az elem nem található az oldalon azon a ponton, ahol a web-illesztőprogram elérte az oldalt.

  1. Ellenőrizze újra a lokátort a Firepath vagy az Inspect Element segítségével a Chrome-ban.
  2. Ellenőrizze, hogy a kódban használt érték eltér-e a Firepath elemének értékétől.
  3. Egyes tulajdonságok néhány elemnél dinamikusak. Ha úgy találja, hogy az érték eltér, és dinamikusan változik, fontolja meg a By.xpath() vagy a By.cssSelector() használatát, amelyek megbízhatóbbak, de összetettebbek.
  4. Néha ez egy várakozási probléma is lehet, azaz a web-illesztőprogram végrehajtotta a kódot még az oldal teljes betöltése előtt stb.
  5. Adjon hozzá egy várakozást a findElement() előtt implicit vagy explicit várakozással.

Összegzésként

  • Az alábbi táblázat összefoglalja az egyes fent tárgyalt elemtípusok eléréséhez szükséges parancsokat
Elem parancs Description
Bemenet Box sendKeys() értékek szövegdobozokba való beírására szolgál
egyértelmű() a szövegdobozok aktuális értékének törlésére szolgál
Linkek kattints() rákattint a hivatkozásra, és megvárja, amíg az oldal betöltődik, mielőtt továbblépne a következő parancsra.
Küldés gomb Beküldés()
  • A WebDriver lehetővé teszi egynél több lehetőség kiválasztását több SELECT elemben.
  • A submit() metódus az űrlap bármely elemére használható. A WebDriver automatikusan elindítja annak az űrlapnak a küldési funkcióját, amelyhez az elem tartozik.