Webový prvok selénového formulára: TextBox, Button, sendkeys (), click ()

Obsah:

Anonim

Formuláre sú základnými webovými prvkami na prijímanie informácií od návštevníkov webových stránok. Webové formuláre majú rôzne prvky grafického používateľského rozhrania, ako sú textové polia, polia hesla, začiarkavacie políčka, prepínače, rozbaľovacie ponuky, vstupy súborov atď.

Uvidíme, ako pristupovať k týmto rôznym tvarovým prvkom pomocou selenového webového ovládača s jazykom Java. Selén zapuzdruje každý tvarový prvok ako objekt WebElement. Poskytuje API na vyhľadanie prvkov a vykonanie akcií, ako je zadávanie textu do textových polí, klikanie na tlačidlá atď. Uvidíme, aké metódy sú k dispozícii na prístup ku každému prvku formulára.

V tomto tutoriále uvidíme, ako identifikovať nasledujúce prvky formulára

  • Úvod do WebElement, findElement (), findElements ()
  • Vstupné pole
  • Zadávanie hodnôt do vstupných polí
  • Vymazanie hodnôt vo vstupných poliach
  • Gombíky
  • Odoslať tlačidlá
  • Kompletný kód
  • Riešenie problémov

Úvod do WebElement, findElement (), findElements ()

Selenium Web Driver zapuzdruje jednoduchý formulárový prvok ako objekt WebElement.

Existuje niekoľko techník, pomocou ktorých WebDriver identifikuje prvky formulára na základe rôznych vlastností webových prvkov, ako sú ID, Názov, Trieda, XPath, Názov značky, Selektory CSS, Text odkazu atď.

Ovládač Web Driver poskytuje nasledujúce dve metódy WebElement na vyhľadanie prvkov.

  • findElement () - vyhľadá jeden webový prvok a vráti sa ako objekt WebElement Selenium.
  • findElements () - vráti zoznam objektov WebElement zodpovedajúcich kritériám lokátora.

Pozrime sa na úryvky kódu, aby sme pomocou metódy findElement () získali jediný prvok - textové pole na webovej stránke ako objekt WebElement. Metóde findElements () hľadania viacerých prvkov sa budeme zaoberať v nasledujúcich tutoriáloch.

Krok 1: Tento balík musíme importovať, aby sme mohli vytvárať objekty webových prvkov

Krok 2: Musíme zavolať metódu findElement (), ktorá je k dispozícii v triede WebDriver, a získať objekt WebElement.

Ako sa to deje, nájdete nižšie.

Vstupné pole

Vstupné polia sa vzťahujú na jeden z týchto dvoch typov:

  1. Textové polia - vstupné textové polia selénu, ktoré prijímajú zadané hodnoty a zobrazujú ich také, aké sú.
  2. Polia hesla - textové polia, ktoré prijímajú zadané hodnoty, ale maskujú ich ako sériu špeciálnych znakov (zvyčajne bodky a hviezdičky), aby sa zabránilo zobrazeniu citlivých hodnôt.

Lokátory

Metóda findElement () má jeden parameter, ktorý je lokátorom prvku. Rôzne lokátory ako By.id (), By.name (), By.xpath (), By.CSSSelector () atď. Vyhľadávajú prvky na stránke pomocou ich vlastností ako „id“, názov alebo cesta, atď.

Môžete použiť doplnky ako Fire path, aby ste dostali pomoc so získaním id, xpath atď. Prvkov.

Na nižšie uvedenom príklade stránky http://demo.guru99.com/test/login.html je uvedený kód na vyhľadanie textového poľa „E-mailová adresa“ pomocou vyhľadávača id a poľa „Heslo“ pomocou vyhľadávača mien.

  1. Textové pole e-mailu je umiestnené podľa Id
  2. Pole pre heslo je umiestnené podľa mena

sendkeys v seléne

sendkeys () in Selenium je metóda používaná na zadávanie upraviteľného obsahu do textových polí a hesiel počas vykonávania testu. Tieto polia sa identifikujú pomocou lokátorov, ako je názov, trieda, ID atď. Je to metóda dostupná na webovom prvku. Na rozdiel od metódy typu metóda sendkeys () nenahrádza existujúci text v žiadnom textovom poli.

Zadávanie hodnôt do vstupných polí

Na zadávanie textu do textových polí a polí hesla je k dispozícii metóda sendKeys (), ktorá je k dispozícii v prvku WebElement v seléne.

Na rovnakom príklade stránky http://demo.guru99.com/test/login.html nájdeme textové pole a heslo a zadáme text v seléne.

  1. Vyhľadajte textové pole „E-mailová adresa“ pomocou vyhľadávača id.
  2. Pomocou vyhľadávača mien vyhľadajte pole „Heslo“
  3. Zadajte text do „e-mailovej adresy“ pomocou metódy selén sendkeys.
  4. Zadajte heslo do poľa „Heslo“ pomocou metódy sendKeys ().

Vymazanie hodnôt vo vstupných poliach

Na vymazanie textu vo vstupnom poli sa používa metóda clear () . Táto metóda nevyžaduje parameter . Fragment kódu nižšie vymaže text z polí E-mail alebo Heslo

Gombíky

Kliknutím na tlačidlo selén sa sprístupňuje metóda click ().

V príklade vyššie

  1. Nájdite tlačidlo na prihlásenie
  2. Kliknutím na tlačidlo „Prihlásiť sa“ na prihlasovacej stránke webu sa prihlásite na stránku.

Odoslať tlačidlá

Tlačidlá Odoslať sa používajú na odoslanie celého formulára na server. Môžeme použiť metódu click () na webovom prvku ako bežné tlačidlo, ako sme to urobili vyššie, alebo použiť metódu submit () na ľubovoľnom webovom prvku vo formulári alebo na samotnom tlačidle odoslať.

Keď sa použije submit (), WebDriver vyhľadá DOM, aby zistil, do ktorej formy prvok patrí, a potom spustí jeho funkciu odoslania.

Kompletný kód

Tu je kompletný pracovný kód

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;formulár pre verejnú triedu {public static void main (String [] args) {// deklarácia a inštancia objektov / premennýchSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Ovládač WebDriver = nový ChromeDriver ();Reťazec baseUrl = "http://demo.guru99.com/test/login.html";driver.get (baseUrl);// Získajte WebElement zodpovedajúci e-mailovej adrese (TextField)WebElement email = driver.findElement (By.id ("e-mail"));// Získajte WebElement zodpovedajúci poľu heslaHeslo WebElement = driver.findElement (By.name ("passwd"));email.sendKeys (" Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.");heslo.sendKeys ("abcdefghlkjl");System.out.println ("Sada textových polí");// Vymazanie hodnôt v textovom poliemail.clear ();password.clear ();System.out.println ("Textové pole vymazané");// Nájdi tlačidlo na odoslanieWebElement login = driver.findElement (By.id ("SubmitLogin"));// Použitie metódy kliknutia na odoslanie formuláraemail.sendKeys (" Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript."); heslo.sendKeys ("abcdefghlkjl"); login.click (); System.out.println ("Prihlásenie dokončené kliknutím"); // pomocou metódy odoslania na odoslanie formulára. Zadajte použité v poli hesla driver.get (baseUrl); driver.findElement (By.id ("email")). sendKeys (" Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript."); driver.findElement (By.name ("passwd")). sendKeys ("abcdefghlkjl"); driver.findElement (By.id ("SubmitLogin")). submit (); System.out.println ("Prihlásenie hotové s odoslaním"); //driver.close (); }}

Riešenie problémov

Ak sa pri hľadaní prvkov stretnete s NoSuchElementException (), znamená to, že prvok sa na stránke nenachádza v okamihu, keď webový ovládač vstúpil na stránku.

  1. Znova skontrolujte svoj lokátor pomocou Firepath alebo Inspect Element v prehliadači Chrome.
  2. Skontrolujte, či sa hodnota, ktorú ste použili v kóde, líši od hodnoty pre prvok v aplikácii Firepath teraz.
  3. Niektoré vlastnosti sú dynamické pre niekoľko prvkov. V prípade, že zistíte, že hodnota je iná a dynamicky sa mení, zvážte použitie By.xpath () alebo By.cssSelector (), ktoré sú spoľahlivejšie, ale zložitejšie spôsoby.
  4. Niekedy to môže byť aj problém s čakaním, tj. Webový ovládač vykonal váš kód ešte predtým, ako sa stránka úplne načítala, atď.
  5. Pridajte čakanie pred findElement () pomocou implicitného alebo explicitného čakania.

Zhrnutie

  • V nasledujúcej tabuľke sú zhrnuté príkazy na prístup ku každému typu prvku, o ktorom sa hovorí vyššie
Prvok Velenie Popis
Vstupné pole sendKeys () slúži na zadávanie hodnôt do textových polí
jasný() slúži na vymazanie textových polí z jeho aktuálnej hodnoty
Odkazy kliknite () slúži na kliknutie na odkaz a čakanie na dokončenie načítania stránky pred pokračovaním k ďalšiemu príkazu.
Tlačidlo Odoslať Predložiť()
  • WebDriver umožňuje výber viacerých ako jednej možnosti z viacerých prvkov SELECT.
  • Metódu submit () môžete použiť na ľubovoľnom prvku vo formulári. WebDriver automaticky spustí funkciu odoslania formulára, do ktorého tento prvok patrí.