Sobes.tech
Junior — Middle

Vysvetlite rozdiely medzi prístupmi Page Factory a Page Object Model v automatizovanom testovaní

sobes.tech AI

Odpoveď od AI

Page Object Model (POM) — je návrhový vzor v automatizácii testovania, ktorý predpokladá vytváranie tried objektov pre každú stránku aplikácie. V týchto triedach sú popísané prvky stránky a metódy pre ich interakciu. To zlepšuje čitateľnosť a údržbu testov.

Page Factory — je rozšírenie POM, napríklad poskytované v Selenium, ktoré zjednodušuje inicializáciu prvkov stránky pomocou anotácií (@FindBy). Page Factory inicializuje automaticky webové prvky pri vytváraní objektu stránky, čím znižuje opakujúci sa kód.

Hlavné rozdiely:

  • POM — koncept, vzor, ktorý možno realizovať rôznymi spôsobmi.
  • Page Factory — konkrétna implementácia POM s použitím anotácií a lenivou inicializáciou prvkov.

Príklad s Page Factory v Jave:

public class LoginPage {
    @FindBy(id = "username")
    private WebElement usernameInput;

    @FindBy(id = "password")
    private WebElement passwordInput;

    @FindBy(id = "loginBtn")
    private WebElement loginButton;

    public LoginPage(WebDriver driver) {
        PageFactory.initElements(driver, this);
    }

    public void login(String user, String pass) {
        usernameInput.sendKeys(user);
        passwordInput.sendKeys(pass);
        loginButton.click();
    }
}