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:
- Textové polia - vstupné textové polia selénu, ktoré prijímajú zadané hodnoty a zobrazujú ich také, aké sú.
- 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.
- Textové pole e-mailu je umiestnené podľa Id
- 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.
- Vyhľadajte textové pole „E-mailová adresa“ pomocou vyhľadávača id.
- Pomocou vyhľadávača mien vyhľadajte pole „Heslo“
- Zadajte text do „e-mailovej adresy“ pomocou metódy selén sendkeys.
- 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
- Nájdite tlačidlo na prihlásenie
- 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.
- Znova skontrolujte svoj lokátor pomocou Firepath alebo Inspect Element v prehliadači Chrome.
- Skontrolujte, či sa hodnota, ktorú ste použili v kóde, líši od hodnoty pre prvok v aplikácii Firepath teraz.
- 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.
- 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ď.
- 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í.