Sobes.tech
Junior — Middle

Explicați diferențele dintre abordările Page Factory și Page Object Model în testarea automatizată

sobes.tech AI

Răspuns de la AI

Page Object Model (POM) — este un model de proiectare în automatizarea testării, care presupune crearea de clase obiect pentru fiecare pagină a aplicației. În aceste clase se descriu elementele paginii și metodele pentru interacțiunea cu acestea. Acest lucru îmbunătățește lizibilitatea și întreținerea testelor.

Page Factory — este o extensie a POM, oferită, de exemplu, în Selenium, care simplifică inițializarea elementelor paginii folosind adnotări (@FindBy). Page Factory inițializează automat elementele web la crearea obiectului paginii, reducând codul repetitiv.

Diferențele principale:

  • POM — concept, pattern, care poate fi implementat în diferite moduri.
  • Page Factory — o implementare concretă a POM folosind adnotări și inițializare leneșă a elementelor.

Exemplu cu Page Factory în 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();
    }
}