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

WebElementin esittely FindElement,FindElements

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ä:

  1. Tekstikentät- Selenium syötä tekstiruutuja, jotka hyväksyvät kirjoitetut arvot ja näyttävät ne sellaisina kuin ne ovat.
  2. 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ä.

    Selenium Sijoita teksti

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.

paikantimet

  1. Sähköpostin tekstikenttä sijaitsee tunnuksella
  2. 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.

Teksti sisään Selenium

  1. Etsi "Sähköpostiosoite" -tekstikenttä id-paikantimella.
  2. Etsi "Salasana"-kenttä nimipaikantimen avulla
  3. Kirjoita teksti "Sähköpostiosoitteeseen" käyttämällä Selenium sendkeys -menetelmä.
  4. 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ä

Arvojen poistaminen syötteestä Boxes

Selenium Napsauta Painikkeet

- Selenium click-painiketta voidaan käyttää click()-menetelmällä.

Yllä olevassa esimerkissä

  1. Etsi painike kirjautuaksesi sisään
  2. Napsauta "Kirjaudu sisään" -painiketta sivuston kirjautumissivulla kirjautuaksesi sivustolle.

Selenium Napsauta Painikkeet

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.

Selenium Lähetä-painikkeet

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.

  1. Tarkista paikannin uudelleen Firepath- tai Inspect Elementin avulla Chromessa.
  2. Tarkista, eroaako koodissa käyttämäsi arvo Firepathin elementin arvosta nyt.
  3. 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.
  4. Joskus se voi olla myös odotusongelma, eli Web-ohjain suoritti koodisi jo ennen kuin sivu latautui 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ää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.