Sobes.tech
Junior — Middle

Wyjaśnij różnice między podejściami Page Factory i Page Object Model w testach automatycznych

sobes.tech AI

Odpowiedź od AI

Page Object Model (POM) — to wzorzec projektowy w automatyzacji testów, który zakłada tworzenie klas obiektów dla każdej strony aplikacji. W tych klasach opisuje się elementy strony i metody do interakcji z nimi. To poprawia czytelność i utrzymanie testów.

Page Factory — to rozszerzenie POM, dostępne na przykład w Selenium, które upraszcza inicjalizację elementów strony za pomocą adnotacji (@FindBy). Page Factory automatycznie inicjalizuje elementy web podczas tworzenia obiektu strony, co skraca kod szablonowy.

Główne różnice:

  • POM — koncepcja, wzorzec, który można realizować na różne sposoby.
  • Page Factory — konkretna implementacja POM z użyciem adnotacji i leniwej inicjalizacji elementów.

Przykład z Page Factory w 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();
    }
}