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
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:
- Szövegmezők- Selenium beviteli szövegmezők, amelyek elfogadják a beírt értékeket, és úgy jelenítik meg őket, ahogy vannak.
- 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.
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.
- Az e-mail szövegmezője az Id
- 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.
- Keresse meg az „E-mail cím” szövegmezőt az azonosítókereső segítségével.
- Keresse meg a „Jelszó” mezőt a névkereső segítségével
- A gombbal írjon be szöveget az „E-mail cím” mezőbe Selenium sendkeys módszer.
- Í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
Selenium Kattintson a Gombokra
A Selenium click gomb a click() metódussal érhető el.
A fenti példában
- Keresse meg a Bejelentkezés gombot
- Kattintson a „Bejelentkezés” gombra az oldal bejelentkezési oldalán az oldalra való bejelentkezéshez.
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.
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.
- Ellenőrizze újra a lokátort a Firepath vagy az Inspect Element segítségével a Chrome-ban.
- Ellenőrizze, hogy a kódban használt érték eltér-e a Firepath elemének értékétől.
- 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.
- 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.
- 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.