Перейти к содержимому

Фотография

[Selium2] Где лучше всего инициализировать WebDriver?


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 php-coder

php-coder

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Slava Semushin
  • Город:Москва

Отправлено 27 октября 2010 - 11:43

Здравствуйте!

Хочу сделать всё правильно, поэтому, следуя советам, использую паттерн PageObject. В итоге возникло два класса:

- класс со страницей
- класс с тестом

В классе с тестом получаю класс со страницей с помощью PageFactory. При этом PageFactory.initElements принимает экземпляр класса WebDriver, который (пока что) я инициализирую в конструкторе класса с тестом. Если будет 10 тестов, то получается, что я буду создавать новый экземпляр в каждом из них. (Кстати, правильно ли я понимаю, что для всех тестов лучше всего использовать один экземпляр WebDriver или нет?)

Сейчас в качестве драйвера используется HtmlUnitDriver(), но если вдруг я захочу его поменять, то мне придётся исправлять все тесты. Выглядит как-то неправильно. Поэтому я хочу узнать где лучше всего создавать экземпляр класса WebDriver? Пока вижу два варианта: сделать общий родительский класс и инициализировать в его конструкторе, либо создать класс-хелпер и вызывать его во всех конструкторах.

Как лучше всего поступить?

Спасибо заранее.
  • 0

#2 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 27 октября 2010 - 12:35

Сравнительно недавно, я написал статью по использованию PageObject паттерна совместно с Selenium (Java) - http://www.protestin...t_selenium.html
В статье все основано на примере, а код достаточно читаем.

В двух словах подход следующий:

1. Создаем рабочий контекст, содержащий сам драйвер (в моем случае это Selenium, в Вашем будет WebDriver)
2. Добавляем ссылку на рабочий контекст в Родителя всех страниц, таким образом, каждая дочерняя страница имеет доступ к контексту.
3. Инициализируем контекст в тесте или в SetUp() теста.


Вот как-то так...
Если где-то как-то не так выразился, спрашивайте...
  • 0
Алексей Булат
Про Тестинг


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных