Sobes.tech
Junior — Middle

Spiega le differenze tra gli approcci Page Factory e Page Object Model nei test automatizzati

sobes.tech AI

Risposta dell'AI

Page Object Model (POM) — è un pattern di progettazione nell'automazione dei test che prevede la creazione di classi oggetto per ogni pagina dell'applicazione. In queste classi vengono descritti gli elementi della pagina e i metodi per interagirvi. Questo migliora la leggibilità e la manutenzione dei test.

Page Factory — è un'estensione del POM, fornita, ad esempio, in Selenium, che semplifica l'inizializzazione degli elementi della pagina tramite annotazioni (@FindBy). Page Factory inizializza automaticamente gli elementi web al momento della creazione dell'oggetto pagina, riducendo il codice ripetitivo.

Principali differenze:

  • POM — concetto, pattern, che può essere implementato in diversi modi.
  • Page Factory — implementazione concreta di POM usando annotazioni e inizializzazione pigra degli elementi.

Esempio con Page Factory in 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();
    }
}