Sobes.tech
Junior — Middle

Vysvětlete rozdíly mezi přístupy Page Factory a Page Object Model v automatizovaném testování

sobes.tech AI

Odpověď od AI

Page Object Model (POM) — je návrhový vzor v automatizaci testování, který předpokládá vytváření tříd objektů pro každou stránku aplikace. V těchto třídách jsou popsány prvky stránky a metody pro jejich interakci. To zlepšuje čitelnost a údržbu testů.

Page Factory — je rozšíření POM, například poskytované v Selenium, které zjednodušuje inicializaci prvků stránky pomocí anotací (@FindBy). Page Factory automaticky inicializuje webové prvky při vytváření objektu stránky, což snižuje opakující se kód.

Hlavní rozdíly:

  • POM — koncept, vzor, který lze realizovat různými způsoby.
  • Page Factory — konkrétní implementace POM s použitím anotací a líné inicializace prvků.

Příklad s Page Factory v Java:

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();
    }
}