Класс фабрики страниц в Selenium: методы и примеры кода

Класс Page Factory в Selenium — это шаблон проектирования, который помогает реализовать структуру объектной модели страницы (POM). Он обеспечивает простой способ инициализации веб-элементов в классе объектов страницы. Используя класс Page Factory, мы можем улучшить возможность повторного использования кода, улучшить сопровождение тестирования и создавать более читаемые и удобные в обслуживании сценарии автоматизации. Вот некоторые часто используемые методы класса Page Factory с примерами кода:

Метод

  1. initElements: этот метод инициализирует веб-элементы, определенные в классе объектов страницы.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class LoginPage {
    @FindBy(id = "username")
    private WebElement usernameInput;
    @FindBy(id = "password")
    private WebElement passwordInput;
    @FindBy(id = "loginButton")
    private WebElement loginButton;
    public LoginPage(WebDriver driver) {
        PageFactory.initElements(driver, this);
    }
// ...
}
  1. initElementsс пользовательским ElementLocatorFactory: этот метод позволяет вам определить собственную фабрику локаторов элементов для поиска элементов.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory;
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
public class HomePage {
    @FindBy(id = "welcomeMessage")
    private WebElement welcomeMessage;
    public HomePage(WebDriver driver) {
        ElementLocatorFactory locatorFactory = new DefaultElementLocatorFactory(driver);
        PageFactory.initElements(locatorFactory, this);
    }
// ...
}
  1. initElementsс FieldDecorator: этот метод позволяет определить собственный декоратор поля для украшения элементов.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.DefaultFieldDecorator;
import org.openqa.selenium.support.pagefactory.FieldDecorator;
public class LoginPage {
    @FindBy(id = "username")
    private WebElement usernameInput;
    @FindBy(id = "password")
    private WebElement passwordInput;
    @FindBy(id = "loginButton")
    private WebElement loginButton;
    public LoginPage(WebDriver driver) {
        FieldDecorator decorator = new DefaultFieldDecorator(driver);
        PageFactory.initElements(decorator, this);
    }
// ...
}

Это всего лишь несколько примеров методов, предоставляемых классом Page Factory в Selenium. Фабрика страниц упрощает инициализацию веб-элементов и делает код более читабельным и удобным в обслуживании.