суббота, 11 января 2014 г.

PageObject Pattern in Selenium tests

Привет всем!
и так начались мои поиски по поводу внедрения 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();

Итак нам нужен пакедж с пейджами и его веб элементами, пакедж с тестами и пакедж с другими дополнительными конфигурационными файлами.


Комментариев нет:

Отправить комментарий