Sobes.tech
Junior — Middle

Εξηγήστε τις διαφορές μεταξύ των προσεγγίσεων Page Factory και Page Object Model στις αυτοματοποιημένες δοκιμές

sobes.tech AI

Απάντηση από AI

Page Object Model (POM) — είναι ένα σχέδιο σχεδίασης στην αυτοματοποίηση δοκιμών που προϋποθέτει τη δημιουργία κλάσεων αντικειμένων για κάθε σελίδα της εφαρμογής. Σε αυτές τις κλάσεις περιγράφονται τα στοιχεία της σελίδας και οι μέθοδοι για την αλληλεπίδραση με αυτά. Αυτό βελτιώνει την αναγνωσιμότητα και τη συντήρηση των δοκιμών.

Page Factory — είναι μια επέκταση του POM, που παρέχεται, για παράδειγμα, στο Selenium, και απλοποιεί την αρχικοποίηση των στοιχείων της σελίδας μέσω σχολίων (@FindBy). Το Page Factory αρχικοποιεί αυτόματα τα στοιχεία web κατά τη δημιουργία του αντικειμένου σελίδας, μειώνοντας τον κώδικα επανάληψης.

Βασικές διαφορές:

  • POM — έννοια, μοτίβο, που μπορεί να υλοποιηθεί με διαφορετικούς τρόπους.
  • Page Factory — συγκεκριμένη υλοποίηση του POM με χρήση σχολίων και τεμπέλικη αρχικοποίηση των στοιχείων.

Παράδειγμα με Page Factory σε 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();
    }
}