Лучшие практики инициализации Selenium PageFactory
В паттерне "Дизайн объекта страницы" я узнал, что любое действие, выполняемое на странице, которая переносит вас на другую страницу, должно возвращать объект такого типа. Такой как пример ниже. Нажав на кнопку "Регистрация" на главной странице, вы попадете на страницу регистрации.
public class MainPage {
...
public RegisterPage clickRegister() {
registerButton.click();
return PageFactory.initElements(driver, RegisterPage.class);
}
}
Пример того, как clickRegister вызывается в тестовом сценарии Selenium:
RegisterPage registerpage = MainPage.clickRegister();
Мой вопрос заключается в том, имеет ли все еще смысл для конструктора RegisterPage иметь PageFactory.initElements(), как показано ниже? Даже если он уже был инициализирован один раз из метода clickRegister().
public class RegisterPage {
public RegisterPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
}