Здравствуйте!
Хочу сделать всё правильно, поэтому, следуя советам, использую паттерн PageObject. В итоге возникло два класса:
- класс со страницей
- класс с тестом
В классе с тестом получаю класс со страницей с помощью PageFactory. При этом PageFactory.initElements принимает экземпляр класса WebDriver, который (пока что) я инициализирую в конструкторе класса с тестом. Если будет 10 тестов, то получается, что я буду создавать новый экземпляр в каждом из них. (Кстати, правильно ли я понимаю, что для всех тестов лучше всего использовать один экземпляр WebDriver или нет?)
Сейчас в качестве драйвера используется HtmlUnitDriver(), но если вдруг я захочу его поменять, то мне придётся исправлять все тесты. Выглядит как-то неправильно. Поэтому я хочу узнать где лучше всего создавать экземпляр класса WebDriver? Пока вижу два варианта: сделать общий родительский класс и инициализировать в его конструкторе, либо создать класс-хелпер и вызывать его во всех конструкторах.
Как лучше всего поступить?
Спасибо заранее.
[Selium2] Где лучше всего инициализировать WebDriver?
Автор php-coder, 27 окт 2010 11:43
В теме одно сообщение
#1
Отправлено 27 октября 2010 - 11:43
#2
Отправлено 27 октября 2010 - 12:35
Сравнительно недавно, я написал статью по использованию PageObject паттерна совместно с Selenium (Java) - http://www.protestin...t_selenium.html
В статье все основано на примере, а код достаточно читаем.
В двух словах подход следующий:
1. Создаем рабочий контекст, содержащий сам драйвер (в моем случае это Selenium, в Вашем будет WebDriver)
2. Добавляем ссылку на рабочий контекст в Родителя всех страниц, таким образом, каждая дочерняя страница имеет доступ к контексту.
3. Инициализируем контекст в тесте или в SetUp() теста.
Вот как-то так...
Если где-то как-то не так выразился, спрашивайте...
В статье все основано на примере, а код достаточно читаем.
В двух словах подход следующий:
1. Создаем рабочий контекст, содержащий сам драйвер (в моем случае это Selenium, в Вашем будет WebDriver)
2. Добавляем ссылку на рабочий контекст в Родителя всех страниц, таким образом, каждая дочерняя страница имеет доступ к контексту.
3. Инициализируем контекст в тесте или в SetUp() теста.
Вот как-то так...
Если где-то как-то не так выразился, спрашивайте...
Алексей Булат
Про Тестинг
Про Тестинг
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных