WebElement sisään Selenium

⚡ Älykäs yhteenveto

WebElement sisään Selenium edustaa jokaista lomakekomponenttia ohjelmoitavana objektina, jonka avulla testaajat voivat olla vuorovaikutuksessa tekstikenttien, valintaruutujen ja radionappien kanssa sekä lähettää elementtejä findElement-, sendKeys-, click-, clear- ja submit-metodien avulla. Java koodiesimerkkejä.

  • 🧩 Paikannintarkkuus: Tunnista lomakeelementit id:n, nimen, XPath:n tai CSS-valitsimen perusteella findElement()-funktion avulla varmistaaksesi vakaan vuorovaikutuksen DOM:n kanssa.
  • 🇧🇷 Syöttöjen käsittely: Lähetä muokattavaa tekstiä kenttiin sendKeys()-funktiolla korvaamatta olemassa olevia arvoja automaattisen suorituksen aikana.
  • 🧹 Kentän nollaus: Tyhjennä syöttökentät clear()-metodilla ennen tietojen uudelleensyöttämistä, mikä estää jäännösarvojen syntymisen myöhemmissä väitteissä.
  • 🖱️ Painikkeiden vuorovaikutus: Käynnistä kirjautumis- tai navigointitoiminnot click()-metodin avulla vastaavassa WebElement-viittauksessa.
  • 📨 Lomakkeen lähettäminen: Käytä submit()-funktiota missä tahansa lomakkeen elementissä, jotta WebDriver lähettää automaattisesti päälomakkeen lähetyskäsittelijän.
  • 🛡️ Vakausvinkki: Lisää implisiittiset tai eksplisiittiset odotusajat ennen findElement()-kutsuja estääksesi NoSuchElementException-poikkeuksen dynaamisesti ladatuilla sivuilla.

WebElement sisään Selenium

WebElement sisään Selenium

Lomakkeet ovat verkkosivuston kävijöiltä tietoja kerääviä peruselementtejä. Verkkolomakkeet sisältävät erilaisia ​​graafisen käyttöliittymän toimintoja, kuten tekstiruutuja, salasanakenttiä, valintaruutuja, valintanappeja, alasvetovalikoita ja tiedostojen syöttötapoja.

Tässä opetusohjelmassa selitetään, miten pääset käsiksi kuhunkin lomake-elementtiin käyttämällä Selenium WebDriver kanssa Java. Selenium kapseloi jokaisen lomakeelementin WebElementin objektiksi. Se tarjoaa API:n elementtien paikantamiseen ja niihin reagoimiseen, mukaan lukien tekstin syöttäminen, painikkeiden napsauttaminen ja lomakkeiden lähettäminen. Alla olevat osiot käsittelevät kullekin lomake-elementille käytettävissä olevia menetelmiä.

WebElementin esittely FindElement,FindElements

WebElementin esittely, findElement(), findElements()

Selenium WebDriver edustaa yksinkertaista lomake-elementtiä objektina Verkkoelementti.

WebDriver tunnistaa lomakeelementit käyttämällä verkkoelementin eri ominaisuuksia, kuten tunnusta, nimeä ja luokkaa. XPath, Tagname, CSS-valitsimet ja linkkiteksti.

WebDriver tarjoaa seuraavat kaksi WebElement-metodia elementtien löytämiseen:

  • FindElement() – löytää yksittäisen verkkoelementin ja palauttaa sen verkkoelementtinä Selenium esine.
  • etsi elementtejä () – palauttaa luettelon WebElement-objekteista, jotka vastaavat paikannusehtoja.

Alla oleva esimerkki näyttää, kuinka yksittäinen elementti, verkkosivun tekstikenttä, noudetaan WebElement-objektina findElement()-metodin avulla. Useiden elementtien löytämiseen tarkoitettua findElements()-metodia käsitellään seuraavissa opetusohjelmissa.

Vaihe 1) Tuo WebElement-objektien luomiseen tarvittava paketti.

Vaihe 2) Kutsu WebDriver-luokassa olevaa findElement()-metodia noutaaksesi WebElement-objektin, kuten alla on esitetty.

Selenium Sijoita teksti

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

  1. Tekstikentät - Selenium syöttötekstikentät, jotka hyväksyvät kirjoitetut arvot ja näyttävät ne täsmälleen syötetyssä muodossa.
  2. Salasanakentät – tekstiruudut, jotka hyväksyvät kirjoitetut arvot, mutta peittävät ne erikoismerkkien sarjana (yleensä pisteinä tai tähtinä) arkaluonteisten syötteiden piilottamiseksi.

    Selenium Sijoita teksti

paikantimet

findElement()-metodi ottaa yhden parametrin, joka on elementtiin osoittava paikantaja. Eri paikantajat, kuten By.id(), By.name(), By.xpath() ja By.cssSelector(), etsivät sivulta elementtejä niiden ominaisuuksien, kuten id:n, nimen tai polun, avulla.

Voit käyttää laajennuksia, kuten FirePath, elementtien id-, xpath- ja muiden paikannusarvojen hankkimiseen.

Käyttämällä esimerkkisivustoa https://demo.guru99.com/test/login.htmlalla oleva koodi paikantaa ”Sähköpostiosoite”-tekstikentän id-paikantimen avulla ja ”Salasana”-kentän nimipaikantimen avulla.

paikantimet

  1. Sähköpostin tekstikenttä sijaitsee tunnuksen vieressä.
  2. Salasanakenttä sijaitsee nimen vieressä.

lähetä avaimet sisään Selenium

sendKeys() sisään Selenium on metodi, jota käytetään muokattavan sisällön syöttämiseen teksti- ja salasanakenttiin testin suorituksen aikana. Nämä kentät tunnistetaan paikantimilla, kuten nimi, luokka ja tunniste. Metodi on käytettävissä WebElement-objektissa. Toisin kuin type-metodi, sendKeys() ei korvaa tekstiruudussa olevaa tekstiä.

Kuinka kirjoittaa tekstiä Selenium

Tekstin syöttämiseen tekstikenttiin ja salasanakenttiin käytetään sendKeys()-metodia, joka on käytettävissä WebElementissä kohdassa Selenium.

Käyttämällä samaa esimerkkiä https://demo.guru99.com/test/login.htmlalla oleva koodinpätkä paikantaa tekstikentän ja salasanakentän ja kirjoittaa tekstin niihin Selenium.

Teksti sisään Selenium

  1. Etsi ”Sähköpostiosoite”-tekstikenttä id-paikanninta käyttäen.
  2. Etsi ”Salasana”-kenttä nimenhaun avulla.
  3. Kirjoita teksti "Sähköpostiosoitteeseen" käyttämällä Selenium sendKeys-metodi.
  4. Syötä salasana "Salasana"-kenttään käyttämällä sendKeys()-menetelmää.

Arvojen poistaminen syötteestä Boxes

asia selvä() metodi poistaa syöttöruudun sisällä olevan tekstin. Tämä metodi ei tarvitse parametria. Alla oleva koodinpätkä tyhjentää tekstin Sähköposti- tai Salasana-kentistä.

Arvojen poistaminen syötteestä Boxes

Selenium Napsauta Painikkeet

Selenium Click-painikkeeseen pääsee käsiksi click()-metodilla.

Yllä olevassa esimerkissä

  1. Etsi Kirjaudu sisään -painike.
  2. Napsauta sivuston kirjautumissivulla olevaa ”Kirjaudu sisään” -painiketta todentaaksesi käyttäjätunnuksesi.

Selenium Napsauta Painikkeet

Selenium Lähetä-painikkeet

Lähetä-painikkeet lähettävät koko lomakkeen palvelimelle. Voit joko kutsua click()-metodia WebElement-elementissä, kuten yllä on esitetty, tai käyttää submit()-metodia mille tahansa lomakkeen elementille tai itse lähetyspainikkeelle.

Selenium Lähetä-painikkeet

Kun submit()-funktiota käytetään, WebDriver hakee DOM-tietokannasta lomakkeen, johon elementti kuuluu, ja käynnistää sitten submit-funktion.

Täydellinen Code

Tässä on täydellinen toimiva koodi.

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()-virheen elementtejä etsiessäsi, elementtiä ei ole sivulla sillä hetkellä, kun WebDriver käyttää sitä.

  1. Tarkista paikannuslaite uudelleen FirePathilla tai Chromen Tarkastele elementti -vaihtoehdolla.
  2. Tarkista, eroaako koodissa käytetty arvo FirePathissa näkyvän elementin nykyisestä arvosta.
  3. Jotkin attribuutit ovat dynaamisia tietyille elementeille. Jos arvo muuttuu dynaamisesti, vaihda By.xpath()- tai By.cssSelector()-funktioon, jotka ovat luotettavampia mutta hieman monimutkaisempia.
  4. Joskus ongelmana on odotustila; WebDriver saattaa suorittaa koodin ennen sivun latautumisen päättymistä.
  5. Lisää odotus ennen findElement():tä käyttämällä implisiittisiä tai eksplisiittisiä odotuksia.

Yhteenveto

  • Alla oleva taulukko yhteenvetää komennot, joilla pääsee käsiksi yllä käsiteltyihin elementtityyppeihin.
Elementti Komento Tuotetiedot
panos Box sendKeys() Käytetään arvojen syöttämiseen tekstiruutuihin.
asia selvä() Käytetään tekstiruutujen nykyisen arvon tyhjentämiseen.
Linkit klikkaus() Käytetään linkin napsauttamiseen ja sivun latautumisen odottamiseen ennen seuraavaan komentoon siirtymistä.
Lähetä-painike Lähetä() Käytetään lomakkeen lähettämiseen käynnistämällä päälomakkeen lähetyskäsittelijä.
  • WebDriver mahdollistaa useamman kuin yhden vaihtoehdon valinnan useassa SELECT-elementissä.
  • Voit käyttää submit()-metodia mille tahansa lomakkeen elementille. WebDriver käynnistää automaattisesti submit-funktion lomakkeessa, johon elementti kuuluu.

UKK

findElement() palauttaa ensimmäisen vastaavan WebElement-elementin ja heittää NoSuchElementException-poikkeuksen, jos sellaista ei ole. findElements() palauttaa luettelon vastaavista WebElement-elementeistä ja palauttaa tyhjän luettelon, jos mikään elementti ei vastaa paikanninta.

Verkkoelementti on Selenium kääre, joka paljastaa automaatiometodit, kuten sendKeys, click ja clear. HTML-elementti on pohjalla oleva DOM-solmu. WebDriver paikantaa DOM-solmun ja palauttaa WebElement-viittauksen vuorovaikutusta varten.

Kyllä. Tekoälyllä toimivat työkalut analysoivat DOM:ia ja ehdottavat pysyviä paikantimia id:n, nimen, suhteellisen XPath:n tai CSS-valitsimien avulla. Ne vähentävät paikantimien haurautta tunnistamalla yksilöllisiä attribuuttiyhdistelmiä ja ehdottamalla varavaihtoehtoja, kun attribuutti muuttuu.

Kyllä. Tekoälypohjaiset itsekorjautuvat paikantimet sitovat WebElementin automaattisesti uudelleen, kun attribuutti muuttuu. Tämä vähentää epätasaisia ​​virheitä, pienentää ylläpitotyötä ja pitää Selenium ohjelmistot ovat vakaita useiden käyttöliittymäpäivitysten aikana ketterissä toimitussykleissä.

Yleisiä WebElement-poikkeuksia ovat StaleElementReferenceException, ElementNotInteractableException, ElementClickInterceptedException, InvalidElementStateException ja TimeoutException. Jokainen niistä viittaa erilaiseen DOM-, näkyvyys- tai synkronointiongelmaan, joka tulisi käsitellä odotusaikojen tai päivitettyjen elementtiviittausten avulla.

Tiivistä tämä viesti seuraavasti: