Sobes.tech
Junior — Middle

Explique las diferencias entre los enfoques Page Factory y Page Object Model en las pruebas automatizadas

sobes.tech AI

Respuesta de la IA

Page Object Model (POM) — es un patrón de diseño en la automatización de pruebas que implica crear clases de objetos para cada página de la aplicación. En estas clases se describen los elementos de la página y los métodos para interactuar con ellos. Esto mejora la legibilidad y el mantenimiento de las pruebas.

Page Factory — es una extensión de POM, proporcionada, por ejemplo, en Selenium, que simplifica la inicialización de los elementos de la página mediante anotaciones (@FindBy). Page Factory inicializa automáticamente los elementos web al crear el objeto de la página, lo que reduce el código repetitivo.

Diferencias principales:

  • POM — es un concepto, un patrón que puede implementarse de diferentes maneras.
  • Page Factory — es una implementación concreta de POM usando anotaciones y una inicialización perezosa de los elementos.

Ejemplo con Page Factory en 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();
    }
}