Sobes.tech
Junior — Middle

Објасните разлике између приступа Page Factory и Page Object Model у аутоматизованом тестирању

sobes.tech АИ

Одговор од АИ

Page Object Model (POM) — je obrazac dizajna u automatizaciji testiranja koji podrazumeva kreiranje klasa objekata za svaku stranicu aplikacije. U tim klasama se opisuju elementi stranice i metode za interakciju sa njima. To poboljšava čitljivost i održavanje testova.

Page Factory — je proširenje POM, koje se na primer pruža u Selenium-u, a pojednostavljuje inicijalizaciju elemenata stranice pomoću anotacija (@FindBy). Page Factory automatski inicijalizuje web elemente prilikom kreiranja objekta stranice, čime se smanjuje šablonski kod.

Glavne razlike:

  • POM — koncept, obrazac, koji se može implementirati na različite načine.
  • Page Factory — konkretna implementacija POM koristeći anotacije i lenju inicijalizaciju elemenata.

Primer sa Page Factory u Javi:

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