Sobes.tech
Junior — Middle

Expliquez les différences entre les approches Page Factory et Page Object Model dans les tests automatisés

sobes.tech IA

Réponse de l'IA

Page Object Model (POM) — est un modèle de conception en automatisation de tests qui consiste à créer des classes d'objets pour chaque page de l'application. Ces classes décrivent les éléments de la page et les méthodes pour interagir avec eux. Cela améliore la lisibilité et la maintenance des tests.

Page Factory — est une extension de POM, fournie par exemple dans Selenium, qui simplifie l'initialisation des éléments de la page à l'aide d'annotations (@FindBy). Page Factory initialise automatiquement les éléments web lors de la création de l'objet de la page, ce qui réduit le code répétitif.

Principales différences:

  • POM — concept, patron qui peut être implémenté de différentes manières.
  • Page Factory — une implémentation concrète de POM utilisant des annotations et une initialisation paresseuse des éléments.

Exemple avec 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();
    }
}