Sobes.tech
Junior — Middle

Explique as diferenças entre as abordagens Page Factory e Page Object Model nos testes automatizados

sobes.tech IA

Resposta da IA

Page Object Model (POM) — é um padrão de design na automação de testes que envolve criar classes de objetos para cada página da aplicação. Nessas classes, descrevem-se os elementos da página e os métodos para interagir com eles. Isso melhora a legibilidade e a manutenção dos testes.

Page Factory — é uma extensão do POM, fornecida, por exemplo, no Selenium, que simplifica a inicialização dos elementos da página usando anotações (@FindBy). O Page Factory inicializa automaticamente os elementos web ao criar o objeto da página, o que reduz o código repetitivo.

Principais diferenças:

  • POM — conceito, padrão que pode ser implementado de várias formas.
  • Page Factory — implementação concreta do POM usando anotações e inicialização preguiçosa dos elementos.

Exemplo com Page Factory em 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();
    }
}