Selenium Form WebElement: TextBox, Button, sendkeys (), napsauta ()

Sisällysluettelo:

Anonim

Lomakkeet ovat keskeisiä web-elementtejä tietojen vastaanottamiseksi verkkosivuston vierailijoilta. Verkkolomakkeilla on erilaiset graafisen käyttöliittymän elementit, kuten tekstiruudut, salasanakentät, valintaruudut, valintanapit, pudotusvalikot, tiedostotiedot jne.

Näemme, miten näihin erilaisiin muotoelementteihin pääsee käyttämällä Selenium Web -ohjainta Java-käyttöjärjestelmällä. Seleeni kapseloi kaikki lomake-elementit WebElementin kohteiksi. Se tarjoaa API: n etsimään elementtejä ja ryhtymään niihin, kuten kirjoittamalla tekstiä tekstiruutuihin, napsauttamalla painikkeita jne. Näemme menetelmät, jotka ovat käytettävissä kunkin lomakelementin käyttämiseen.

Tässä opetusohjelmassa näemme, kuinka tunnistaa seuraavat lomake-elementit

  • Johdanto WebElementiin, findElement (), findElement ()
  • Syöttölaatikko
  • Arvojen syöttäminen syöttöruutuihin
  • Arvojen poistaminen syöttöruuduista
  • Painikkeet
  • Lähetä painikkeet
  • Täydellinen koodi
  • Ongelmien karttoittaminen

Johdanto WebElementiin, findElement (), findElement ()

Selenium Web -ohjain kapseloi yksinkertaisen lomake-elementin WebElement-objektiksi.

On olemassa useita tekniikoita, joilla WebDriver tunnistaa lomake-elementit verkkoelementtien eri ominaisuuksien perusteella, kuten tunnus, nimi, luokka, XPath, tagin nimi, CSS-valitsimet, linkkiteksti jne.

Web-ohjain tarjoaa seuraavat kaksi WebElement-menetelmää elementtien löytämiseksi.

  • findElement () - etsii yhden verkkoelementin ja palaa WebElement Selenium -objektina.
  • findElements () - palauttaa luettelon WebElement-objekteista, jotka vastaavat paikannuskriteereitä.

Katsotaanpa koodinpätkät, jotta saat yhden elementin - Web-sivun tekstikentän WebElement-objektina findElement () -menetelmällä. Käsittelemme findElements () -menetelmää useiden elementtien löytämiseksi seuraavissa opetusohjelmissa.

Vaihe 1: Meidän on tuotava tämä paketti Web-elementtien objektien luomiseksi

Vaihe 2: Meidän on kutsuttava FindDement () -menetelmä, joka on käytettävissä WebDriver-luokassa, ja hankittava WebElement-objekti.

Katso alla, miten se tehdään.

Syöttölaatikko

Syöttöruudut viittaavat jompaankumpaan näistä kahdesta tyypistä:

  1. Tekstikentät - seleenin syöttötekstiruudut, jotka hyväksyvät kirjoitetut arvot ja näyttävät ne sellaisenaan.
  2. Salasanakentät - tekstikentät, jotka hyväksyvät kirjoitetut arvot, mutta peittävät ne sarjana erikoismerkkejä (yleensä pisteitä ja tähtiä), jotta vältetään arkaluontoisten arvojen näyttäminen.

Paikantimet

Metodi findElement () vie yhden parametrin, joka on elementin paikannin. Eri paikannuslaitteet, kuten By.id (), By.name (), By.xpath (), By.CSSSelector () jne., Etsivät sivun elementit niiden ominaisuuksien avulla, kuten `` '', id, nimi tai polku, jne.

Voit käyttää laajennuksia, kuten Fire path, saadaksesi apua elementtien id, xpath jne. Saamiseen.

Käyttämällä alla olevaa esimerkkisivustoa http://demo.guru99.com/test/login.html on koodi, jonka avulla "Sähköpostiosoite" -tekstikenttä voidaan etsiä käyttämällä ID-paikanninta ja "Salasana" -kenttää käyttämällä nimihaku.

  1. Sähköpostitekstikenttä sijaitsee tunnuksen mukaan
  2. Salasanakenttä sijaitsee nimen mukaan

lähetysavaimet seleenissä

seleenilähettimet () on menetelmä, jolla syötetään muokattava sisältö teksti- ja salasanakenttiin testin suorituksen aikana. Nämä kentät tunnistetaan paikantimilla, kuten nimi, luokka, tunnus jne. Se on menetelmä, joka on käytettävissä verkkoelementissä. Toisin kuin tyypin menetelmä, sendkeys () -menetelmä ei korvaa missään tekstiruudussa olevaa tekstiä.

Arvojen syöttäminen syöttöruutuihin

Jos haluat kirjoittaa tekstiä tekstikenttiin ja salasanakenttiin, sendKeys () on menetelmä, joka on käytettävissä WebElementissa Seleniumissa.

Käyttämällä samaa esimerkkiä http://demo.guru99.com/test/login.html -sivustosta, löydät täältä tekstikentän ja salasanan kentät ja kirjoitamme tekstiä seleeniin.

  1. Etsi "Sähköpostiosoite" -tekstikenttä id-paikantimen avulla.
  2. Etsi "Salasana" -kenttä käyttämällä nimihaku
  3. Kirjoita teksti "Sähköpostiosoitteeseen" Selenium-avaimet -menetelmällä.
  4. Kirjoita salasana Salasana-kenttään sendKeys () -menetelmällä.

Arvojen poistaminen syöttöruuduista

Kirkas () menetelmää käytetään poistaa tekstin syötelaatikon. Tämä menetelmä ei tarvitse parametria . Alla oleva koodinpätkä tyhjentää tekstin Sähköposti- tai Salasana-kentistä

Painikkeet

Selenium-napsautuspainikkeeseen pääsee napsauttamalla () -menetelmää.

Yllä olevassa esimerkissä

  1. Etsi kirjautumispainike
  2. Napsauta sisäänkirjautumispainiketta sivuston kirjautumissivulla kirjautua sisään sivustolle.

Lähetä painikkeet

Lähetä-painikkeita käytetään lähettämään koko lomake palvelimelle. Voimme joko käyttää click () -menetelmää verkkoelementissä, kuten tavallinen painike, kuten olemme tehneet edellä, tai käyttää Lähetä () -menetelmää missä tahansa verkkoelementissä lomakkeessa tai itse Lähetä-painikkeessa.

Kun lähetystä () käytetään, WebDriver etsii DOM: n tietääkseen, mihin muotoon elementti kuuluu, ja käynnistää sitten sen lähetystoiminnon.

Täydellinen koodi

Tässä on täydellinen käyttökoodi

tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;tuonti org.openqa.selenium. *;julkisen luokan lomake {public staattinen void main (String [] argumentoi) {// esineiden / muuttujien ilmoitus ja ilmentäminenSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();Merkkijono baseUrl = "http://demo.guru99.com/test/login.html";driver.get (baseUrl);// Hanki WebElement, joka vastaa sähköpostiosoitetta (TextField)WebElement email = driver.findElement (By.id ("sähköposti"));// Hanki Salasana-kenttää vastaava WebElementWebElement-salasana = driver.findElement (By.name ("passwd"));email.sendKeys (" Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset Javascriptin nähdäksesi sen.");password.sendKeys ("abcdefghlkjl");System.out.println ("Tekstikenttäjoukko");// Arvojen poistaminen tekstikentästäemail.clear ();password.clear ();System.out.println ("Tekstikenttä tyhjennetty");// Etsi Lähetä-painikeWebElement login = driver.findElement (By.id ("SubmitLogin"));// Napsautusmenetelmän käyttäminen lomakkeen lähettämiseenemail.sendKeys (" Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset Javascriptin nähdäksesi sen."); password.sendKeys ("abcdefghlkjl"); login.click (); System.out.println ("Kirjaudu sisään napsautuksella"); // käyttämällä lähetysmenetelmää lomakkeen lähettämiseen. Lähetä käytetty salasanakentässä driver.get (baseUrl); driver.findElement (By.id ("email")). sendKeys (" Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset Javascriptin nähdäksesi sen."); driver.findElement (By.name ("passwd")). sendKeys ("abcdefghlkjl"); driver.findElement (By.id ("SubmitLogin")). Lähetä (); System.out.println ("Sisäänkirjautuminen valmis lähettämisen kanssa"); //ajuri.sulje (); }}

Ongelmien karttoittaminen

Jos kohtaat NoSuchElementException () -elementtejä etsittäessä, se tarkoittaa, että elementtiä ei löydy sivulta siinä vaiheessa, kun Web-ohjain avasi sivun.

  1. Tarkista paikannin uudelleen Firepathilla tai Tarkasta elementti Chromessa.
  2. Tarkista, eroako koodissa käyttämäsi arvo nyt Firepath-elementin arvoa.
  3. Jotkin ominaisuudet ovat dynaamisia muutamille elementeille. Jos huomaat, että arvo on erilainen ja muuttuu dynaamisesti, harkitse By.xpath () tai By.cssSelector (), jotka ovat luotettavampia, mutta monimutkaisia ​​tapoja.
  4. Joskus se voi olla myös odotusongelma eli web-ohjain suoritti koodisi jo ennen sivun lataamista kokonaan jne.
  5. Lisää odotus ennen findElement (): tä käyttämällä implisiittisiä tai eksplisiittisiä odotuksia.

Yhteenveto

  • Alla olevassa taulukossa on yhteenveto komennoista, joilla pääsee kaikkiin edellä käsiteltyihin elementtityyppeihin
Elementti Komento Kuvaus
Syöttölaatikko sendKeys () käytetään syöttämään arvoja tekstiruutuihin
asia selvä() käytetään tekstiruutujen tyhjentämiseen sen nykyisestä arvosta
Linkit klikkaus() käytetään napsauttamaan linkkiä ja odottamaan sivun latauksen päättymistä, ennen kuin jatkat seuraavaan komentoon.
Lähetä-painike Lähetä()
  • WebDriver sallii useamman kuin yhden vaihtoehdon valinnan useissa SELECT-elementeissä.
  • Voit käyttää Lähetä () -menetelmää missä tahansa lomakkeen elementissä. WebDriver käynnistää automaattisesti lomakkeen lähetystoiminnon, johon kyseinen elementti kuuluu.