WebElement sisään Selenium: TekstiBox, Button, sendkeys(), click()
WebElement sisään Selenium
Lomakkeet ovat perusverkkoelementtejä, joiden avulla saadaan tietoa verkkosivuston vierailijoilta. Verkkolomakkeissa on erilaisia graafisia käyttöliittymäelementtejä, kuten tekstilaatikoita, salasanakenttiä, valintaruutuja, valintanappeja, avattavia valikoita, tiedostosyötteitä jne.
Näemme, kuinka päästään näihin erilaisiin lomakeelementteihin käyttämällä Selenium Web-ajuri kanssa Java. Selenium kapseloi jokaisen lomakeelementin WebElementin objektiksi. Se tarjoaa sovellusliittymän elementtien etsimiseen ja niihin liittyviin toimiin, kuten tekstin syöttämiseen tekstiruutuihin, painikkeiden napsauttamiseksi jne. Näemme käytettävissä olevat menetelmät kunkin lomakeelementin käyttämiseen.
WebElementin esittely, findElement(), findElements()
Selenium Web Driver kapseloi yksinkertaisen lomakeelementin objektiksi WebElement.
On olemassa useita tekniikoita, joilla WebDriver tunnistaa lomakeelementit Web-elementtien eri ominaisuuksien perusteella, kuten ID, nimi, luokka, XPath, tunnistenimi, CSS-valitsimet, linkkiteksti jne.
Web Driver tarjoaa seuraavat kaksi WebElement-menetelmää elementtien löytämiseksi.
- FindElement() – löytää yksittäisen verkkoelementin ja palaa WebElementtina Selenium esine.
- etsi elementtejä () – palauttaa luettelon WebElement-objekteista, jotka vastaavat paikannusehtoja.
Katsotaanpa koodinpätkät, jotta saadaan yksi elementti – Web-sivun tekstikenttä WebElementin objektina käyttämällä findElement()-menetelmää. Käsittelemme findElements()-menetelmää useiden elementtien löytämiseksi myöhemmissä opetusohjelmissa.
Vaihe 1) Meidän on tuotava tämä paketti, jotta voimme luoda Web Elements -objekteja
Vaihe 2) Meidän on kutsuttava WebDriver-luokassa saatavilla olevaa findElement()-metodia ja hankittava WebElementin objekti.
Katso alta, kuinka se tehdään.
Selenium Sijoita teksti
Syöttöruudut viittaavat jompaankumpaan näistä kahdesta tyypistä:
- Tekstikentät- Selenium syötä tekstiruutuja, jotka hyväksyvät kirjoitetut arvot ja näyttävät ne sellaisina kuin ne ovat.
- Salasanakentät– tekstilaatikot, jotka hyväksyvät kirjoitetut arvot, mutta peittävät ne erikoismerkkien sarjana (yleensä pisteitä ja tähtiä), jotta arkaluonteisia arvoja ei näytetä.
paikantimet
Metodi findElement() ottaa yhden parametrin, joka on elementin paikannin. Erilaiset paikantimet, kuten By.id(), By.name(), By.xpath(), By.CSSSelector() jne. paikantavat elementit sivulla käyttämällä niiden ominaisuuksia, kuten ""“ id, nimi tai polku jne.
Voit käyttää lisäosia, kuten Fire path, saadaksesi apua elementtien id:n, xpath:n jne. saamiseen.
Käyttämällä esimerkkisivustoa https://demo.guru99.com/test/login.html Alla on koodi "Sähköpostiosoite"-tekstikentän paikantamiseksi id-paikantimella ja "Salasana"-kentän löytämiseksi nimipaikantimella.
- Sähköpostin tekstikenttä sijaitsee tunnuksella
- Salasanakenttä sijaitsee nimen mukaan
lähetä avaimet sisään Selenium
sendkeys() sisään Selenium on menetelmä, jolla syötetään muokattavaa sisältöä teksti- ja salasanakenttiin testin suorittamisen aikana. Nämä kentät tunnistetaan käyttämällä paikantimia, kuten nimi, luokka, tunnus jne. Se on verkkoelementissä käytettävissä oleva menetelmä. Toisin kuin tyyppimenetelmä, sendkeys()-menetelmä ei korvaa olemassa olevaa tekstiä missään tekstiruudussa.
Kuinka kirjoittaa tekstiä Selenium
Tekstin syöttämiseksi tekstikenttiin ja salasanakenttiin sendKeys() on menetelmä, joka on käytettävissä WebElementissä Selenium.
Käyttämällä samaa esimerkkiä https://demo.guru99.com/test/login.html Näin löydämme Teksti- ja Salasana-kentät ja kirjoitamme tekstiä sisään Selenium.
- Etsi "Sähköpostiosoite" -tekstikenttä id-paikantimella.
- Etsi "Salasana"-kenttä nimipaikantimen avulla
- Kirjoita teksti "Sähköpostiosoitteeseen" käyttämällä Selenium sendkeys -menetelmä.
- Syötä salasana "Salasana"-kenttään käyttämällä sendKeys()-menetelmää.
Arvojen poistaminen syötteestä Boxes
- asia selvä() menetelmää käytetään tekstin poistamiseen syöttöruudusta. Tämä menetelmä ei vaadi parametria. Alla oleva koodinpätkä poistaa tekstin Sähköposti- tai Salasana-kentistä
Selenium Napsauta Painikkeet
- Selenium click-painiketta voidaan käyttää click()-menetelmällä.
Yllä olevassa esimerkissä
- Etsi painike kirjautuaksesi sisään
- Napsauta "Kirjaudu sisään" -painiketta sivuston kirjautumissivulla kirjautuaksesi sivustolle.
Selenium Lähetä-painikkeet
Lähetä-painikkeita käytetään lähettämään koko lomake palvelimelle. Voimme joko käyttää click () -menetelmää verkkoelementissä tavallisen painikkeen tapaan, kuten olemme tehneet edellä, tai lähettää () -menetelmää missä tahansa lomakkeen verkkoelementissä tai itse lähetyspainikkeessa.
Kun submit() on käytössä, WebDriver etsii DOM:sta tietääkseen, mihin muotoon elementti kuuluu, ja käynnistää sitten lähetystoiminnon.
Täydellinen koodi
Tässä on täydellinen toimintakoodi
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(); } }
Ongelmien karttoittaminen
Jos kohtaat NoSuchElementException():n etsiessäsi elementtejä, se tarkoittaa, että elementtiä ei löydy sivulta kohdassa, jossa Web-ohjain avasi sivun.
- Tarkista paikannin uudelleen Firepath- tai Inspect Elementin avulla Chromessa.
- Tarkista, eroaako koodissa käyttämäsi arvo Firepathin elementin arvosta nyt.
- Jotkut ominaisuudet ovat dynaamisia muutamille elementeille. Jos huomaat, että arvo on erilainen ja muuttuu dynaamisesti, harkitse By.xpath()- tai By.cssSelector():n käyttöä, jotka ovat luotettavampia mutta monimutkaisempia tapoja.
- Joskus se voi olla myös odotusongelma, eli Web-ohjain suoritti koodisi jo ennen kuin sivu latautui kokonaan jne.
- Lisää odotus ennen findElement():tä käyttämällä implisiittisiä tai eksplisiittisiä odotuksia.
Yhteenveto
- Alla olevassa taulukossa on yhteenveto komennoista, joilla pääset käsiksi jokaiseen edellä käsiteltyyn elementtityyppiin
Elementti | Komento | Tuotetiedot |
---|---|---|
panos Box | sendKeys() | käytetään arvojen syöttämiseen tekstiruutuihin |
asia selvä() | käytetään tekstilaatikoiden nykyisen arvon tyhjentämiseen | |
Linkit | klikkaus() | klikkaa linkkiä ja odota sivun latautumista ennen kuin siirryt seuraavaan komentoon. |
Lähetä-painike | Lähetä() |
- WebDriver mahdollistaa useamman kuin yhden vaihtoehdon valinnan useassa SELECT-elementissä.
- Voit käyttää submit()-menetelmää missä tahansa lomakkeen elementissä. WebDriver käynnistää automaattisesti sen lomakkeen lähetystoiminnon, johon kyseinen elementti kuuluu.