Привет всем!
и так начались мои поиски по поводу внедрения PageObject Pattern! Главная особенность этого паттерна в том, что каждый веб элемент объявляется единожды и при написании тестов мы легко используем этот веб элемент. И когда идет динамическая разработка, достаточно поменять локатор в одном месте, чтобы тесты снова стали зелёными. Например,
я объявляю вебэлементы с помощью @Findby:
@FindBy(id = "places")
или если в конструктор пейджа вставить инициализацию самого PageFactory,
PageFactory.initElements(driver, this); }
}
return new ResultPage(driver);
Тесты приобретают простой и понятный вид, даже не техническому специалисту. Их легко править и менять:
LoginPage loginPage = new LoginPage(driver);
@FindBy(css = ".place>div>button")
private List<WebElement> ListButtonSelect;
private WebElement Places;
Веб - страница представляется как пейдж с объэктами на ней! каждый вебэлемент представляется как вебэлемент и взаимодействует с страницей!
При переходе на другую страницу нужно возвращать инициализацию страницы таким образом:
return PageFactory.initElements(driver, ResultPage.class);
public Page(WebDriver driver) {
this.driver = getWebDriver();
то можно навсегда забыть о PageFactory и возвращать инициализацию страницы таким образом:
loginPage.open();
MyMenu myPage = loginPage.doLogin("test.autoria@mail.ru", "111111");
Assert.assertTrue(myPage.isLoggedIn());
Add_autoPage secondStep = myPage.addArticle();
CongratulationPage thirdStep = secondStep.AddOptions();
Итак нам нужен пакедж с пейджами и его веб элементами, пакедж с тестами и пакедж с другими дополнительными конфигурационными файлами.
Комментариев нет:
Отправить комментарий