page object model selenium without using page factory
Page Object Model (POM) je návrhový vzor na udržiavanie úložiska objektov pre webové prvky. Tento výukový program vysvetľuje, ako implementovať POM v seléne bez stránky Factory:
Skriptovaný projekt automatizácie musí byť navrhnutý tak, aby bol optimalizovaný a ľahšie pochopiteľný. To sa dosiahne použitím POM, ktorý pri navrhovaní rámca dodržiava určité pokyny.
Dozvieme sa viac o:
- Čo je POM?
- Výhody použitia POM v projekte
- Ako vytvoriť základný POM bez použitia prístupu Page Factory?
=> Navštívte tu exkluzívnu sériu výučbových školení pre selén.
Čo sa dozviete:
Objektový model stránky bez stránky Factory
Page Object Model je návrhový vzor, ktorý sa používa na údržbu úložiska objektov pre webové prvky. Tu sú všetky webové prvky a ich zodpovedajúce metódy udržiavané v samostatnej triede pre každú webovú stránku. Preto sa aj jedna zmena v atribúte prvku WebElement prejaví vo všetkých testovacích prípadoch, nech sa použije kdekoľvek. Týmto spôsobom vylepšuje ľahšiu údržbu úložiska objektov.
Model Objekty stránky je najlepšie použiť pri aplikáciách, ktoré majú viac stránok alebo stavov.
Tu sú videonávody:
Časť I.
Časť II
Výhody POM
Ďalej uvádzame niekoľko výhod POM:
- Je ľahšie udržiavať kód. Akékoľvek zmeny používateľského rozhrania sa prejavia všade, kde sa v triede použijú.
- Robustný a umožňuje čitateľnosť kódu (metódy majú realistickejšie názvy).
- Umožňuje opätovné použitie kódu a znižuje duplikáciu kódu (úložisko objektov je nezávislé od testovacích prípadov).
- Kód sa zmenší a optimalizuje.
Kroky na vytvorenie POM bez modelu továrne na stránky
# 1) Vytvorte triedu Java pre každú stránku v aplikácii.
#dva) V každej triede deklarujte všetky webové prvky ako premenné.
# 3) Implementujte zodpovedajúce metódy pôsobiace na premenné.
Dizajnový vzor je možné štruktúrovať pomocou 2 vrstiev / balíkov:
- Vrstva stránky bude uchovávať stránky aplikácie ako samostatnú triedu Java. Každá trieda bude mať WebElements deklarované ako premenné a akcie, ktoré sa vykonávajú ako metódy.
- Testovacia vrstva uchová testovacie prípady aplikácie a jej overovacej časti.
Uveďme si príklad jednoduchého scenára:
- Otvorte adresu URL aplikácie.
- Zadajte e-mailovú adresu a údaje o hesle.
- Kliknite na tlačidlo Prihlásiť sa.
- Overte úspešnú prihlasovaciu správu na stránke vyhľadávania.
Vrstva stránky
Máme tu 2 stránky,
- Domovská stránka : Stránka sa otvorí po zadaní adresy URL, a tu zadáme údaje na prihlásenie.
- Vyhľadávacia stránka : Stránka, ktorá sa zobrazí po úspešnom prihlásení.
Vo vrstve Stránka je každá stránka webovej aplikácie deklarovaná ako samostatná trieda Java a sú tam uvedené jej lokátory a akcie.
Kroky na vytvorenie POM s príkladmi v reálnom čase
# 1) Vytvorte triedu Java pre každú stránku:
V tomto príklad , prejdeme na 2 webové stránky, na stránky „Domov“ a „Vyhľadávanie“. Preto vo vrstve stránky (alebo v balíku povedzme com.automation.pages) vytvoríme 2 triedy Java.
Package Name : com.automation.pages HomePage.java SearchPage.java
# 2) Vytvorte WebElements ako premenné:
youtube na mp4 prevodník vysoká kvalita
Spolupracovali by sme s:
- Pole tlačidla E-mail, heslo, prihlásenie na domovskej stránke.
- Úspešná správa na stránke SearchPage.
Takže pomocou premennej ‘By’ Class vytvoríme WebElements ako premenné.
Napríklad: Ak má e-mail xpath ako // div (obsahuje (@id, ‘EmailId’)), potom jeho premenná deklarácia je
// Vyhľadávač pre pole EmailId
By EmailAddress = By.xpath (// div (contains (@id, ‘EmailId’)))
# 3) Vytvorte metódy pre akcie vykonávané na WebElements:
Na WebElements sa vykonávajú nasledujúce akcie:
- Zadajte akciu do poľa EmailAddress.
- Do poľa Heslo zadajte akciu.
- Kliknite na akciu na tlačidle Prihlásiť sa.
Napríklad, Užívateľom definované metódy sa vytvárajú pre každú akciu na WebElement ako,
public void typeEmailId(String Id){ driver.findElement(EmailAddress).sendKeys(Id) }
Tu sa Id odovzdáva ako parameter v metóde, pretože vstup bude odoslaný používateľom z hlavného testovacieho prípadu.
Poznámka :Pre každú triedu vo vrstve stránky musí byť vytvorený konštruktor, aby sa získala inštancia ovládača z hlavnej triedy v testovacej vrstve.
Tu neiniciujeme ovládač, skôr je jeho inštancia prijatá z hlavnej triedy, keď je vytvorený objekt triedy Page Layer.
Pre každú stránku sú vytvorené dve triedy Java, ako je uvedené nižšie:
HomePage.java
//package com.automation.pages; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class HomePage { WebDriver driver; // Locator for Email Address By EmailAddress = By.xpath('//div(contains(@id,'Emaild'))'); // Locator for Password field By Password= By.xpath('//div(contains(@id,'Password'))'); // Locator for SignIn Button By SignInButton= By.xpath('//div(contains(@id,'SignInButton'))'); // Method to type EmailId public void typeEmailId(String Id){ driver.findElement(EmailAddress).sendKeys(Id) } // Method to type Password public void typePassword(String PasswordValue){ driver.findElement(Password).sendKeys(PasswordValue) } // Method to click SignIn Button public void clickSignIn(){ driver.findElement(SignInButton).click() } // Constructor // Gets called when object of this page is created in MainClass.java public HomePage(WebDriver driver) { // 'this' keyword is used here to distinguish global and local variable 'driver' //gets driver as parameter from MainClass.java and assigns to the driver instance in this class this.driver=driver; }
SearchPage.Java
//package com.automation.pages; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class SearchPage{ WebDriver driver; // Locator for Success Message By SuccessMessage= By.xpath('//div(contains(@id,'Message'))'); // Method that return True or False depending on whether the message is displayed public Boolean MessageDisplayed(){ Boolean status = driver.findElement(SuccessMessage).isDisplayed(); return status; } // Constructor // This constructor is invoked when object of this page is created in MainClass.java public SearchPage(WebDriver driver) { // 'this' keyword is used here to distinguish global and local variable 'driver' //gets driver as parameter from MainClass.java and assigns to the driver instance in this class this.driver=driver;
Testovacia vrstva
V tejto triede sú implementované testovacie prípady.
Vytvoríme samostatný balík povedzme com.automation.test a potom tu vytvoríme triedu Java (MainClass.java).
Kroky na vytvorenie testovacích prípadov:
- Inicializujte ovládač a otvorte aplikáciu.
- Vytvorte objekt triedy PageLayer (pre každú webovú stránku) a odovzdajte inštanciu ovládača ako parameter.
- Pomocou vytvoreného objektu zavolajte metódy v triede PageLayer (pre každú webovú stránku), aby ste mohli vykonať akcie / overenie.
- Opakujte krok 3, kým nevykonáte všetky činnosti, a potom zatvorte ovládač.
//package com.automation.test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class MainClass { public static void main(String() args) { System.setProperty('webdriver.chrome.driver','./exefiles/chromedriver.exe'); WebDriver driver= new ChromeDriver(); driver.manage().window().maximize(); driver.get('URL mentioned here'); // Creating object of HomePage and driver instance is passed as parameter to constructor of Homepage.Java HomePage homePage= new HomePage(driver); // Type EmailAddress homePage.typeEmailId('abc@ymail.com'); // EmailId value is passed as paramter which in turn will be assigned to the method in HomePage.Java // Type Password Value homePage.typePassword('password123'); // Password value is passed as paramter which in turn will be assigned to the method in HomePage.Java // Click on SignIn Button homePage.clickSignIn(); // Creating an object of LoginPage and driver instance is passed as parameter to constructor of SearchPage.Java SearchPage searchPage= new SearchPage(driver); //Verify that Success Message is displayed Assert.assertTrue(searchPage.MessageDisplayed()); //Quit browser driver.quit(); } }
Záver
Tento tutoriál vysvetlil výhody modelu Page Object a ako vytvoriť základný návrhový vzor POM bez použitia Page Factory v seléne.
V nadchádzajúcom tutoriáli si povieme ešte ďalší prístup POM, teda použitie prístupu Page Factory.
=> Skontrolujte VŠETKY návody na selén tu.
Odporúčané čítanie
- Objektový model stránky (POM) s nástrojom Page Factory | Výučba selénu
- Špirálový model - Čo je to SDLC špirálový model?
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Používanie triedy výberu selénu na prácu s prvkami rozbaľovacej ponuky na webovej stránke - Výučba selénu č. 13
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Výukový program pre selén ChromeDriver: Testy selenového webdriveru v prehliadači Chrome
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Pracovná príležitosť na voľnej nohe na čiastočný úväzok pre odborníkov na selén