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
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:
- Tekstiväljad- Selenium sisestustekstikastid, mis aktsepteerivad trükitud väärtusi ja näitavad neid sellisena, nagu nad on.
- 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.
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.
- Meili tekstiväli asub ID-ga
- 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.
- Leidke ID-lokaatori abil tekstiväli „E-posti aadress”.
- Leidke nimeotsija abil väli „Parool”.
- Sisestage tekst väljale "E-posti aadress", kasutades nuppu Selenium saatmisvõtmete meetod.
- 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
Selenium Klõpsake nuppu Nupud
. Selenium kliki nupule pääseb juurde meetodi click() abil.
Ülaltoodud näites
- Leidke sisselogimiseks nupp
- Saidile sisselogimiseks klõpsake saidi sisselogimislehel nuppu "Sisselogimine".
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.
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.
- Kontrollige oma lokaatorit uuesti, kasutades Chrome'i Firepathi või Inspect Elementi.
- Kontrollige, kas koodis kasutatud väärtus erineb praegu Firepathi elemendi väärtusest.
- 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.
- Mõnikord võib see olla ka ootamisprobleem, st veebidraiver käivitas teie koodi isegi enne lehe täielikku laadimist jne.
- 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.