Sobes.tech
Junior — Middle

Обяснете разликите между подходите Page Factory и Page Object Model в автоматизираното тестване

sobes.tech AI

Отговор от AI

Page Object Model (POM) — това е шаблон за дизайн в автоматизацията на тестове, който предполага създаването на класове-обекти за всяка страница на приложението. В тези класове се описват елементите на страницата и методите за взаимодействие с тях. Това подобрява четливостта и поддръжката на тестовете.

Page Factory — е разширение на POM, предоставено например в Selenium, което улеснява инициализацията на елементите на страницата чрез анотации (@FindBy). Page Factory автоматично инициализира уеб елементите при създаването на обекта на страницата, което намалява шаблонния код.

Основни разлики:

  • POM — концепция, шаблон, който може да бъде реализиран по различни начини.
  • Page Factory — конкретна реализация на POM с използване на анотации и лениво инициализиране на елементите.

Пример с Page Factory на 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();
    }
}