2013-02-16 3 views
0

Я строю проект автоматизации тестирования с использованием Perl и Selenium. Я использую Object Object Model. Я несколько не уверен, где драйвер Selenium вписывается в реализацию объектной модели страницы.Реализация объектной модели страницы

Должен ли каждый объект страницы иметь драйвер? Я думаю, что каждый объект страницы представляет собой набор сервисов, которые страница предлагает пользователю. С учетом этой концепции объект страницы не имеет отношения «has-a» с драйвером. Объект страницы взаимодействует с драйвером. Тем не менее, я все еще ищу предложения. Должен ли я иметь драйвер как часть каждого объекта страницы в веб-приложении?

Спасибо!

ответ

0

Я всегда включаю драйвер как часть каждого объекта страницы. Способ, которым я думал о драйвере, состоял в том, что он представляет состояние текущей страницы. Он дает доступ к URL-адресу, источнику страницы и т. Д.

Теперь каждая страница имеет текущий URL-адрес, исходный код страницы, заголовок страницы, доступ к которому возможен через драйвер.

+0

Благодарим вас за ввод, nrbafna. Это подход, который я выбрал в конце! Ты делаешь доброе дело ! Я понял, что единственный способ взаимодействия с страницей - через драйвер, и я провожу драйвер, поэтому он не похож на новый драйвер для каждой страницы. –

1

Этот ответ не будет сильно отличаться от @zodvik и вашего мыслительного процесса, но это еще один дополнительный подход. Вместо того, чтобы передавать драйвер вокруг, вы можете создать абстрактный класс, из которого каждый объект страницы может наследовать. Из абстрактного класса также могут быть некоторые общие функциональные методы, которые вы часто будете использовать.

Это, по крайней мере, как я это делаю на языке Java.

0

Я думаю, что Драйвер не является частью объекта Page, для меня драйвер является методом доступа к объекту страницы, поэтому он логически не зависит от страницы. мы включаем только объект драйвера внутри класса страницы, поэтому мы можем передать объект-драйвер классу, поэтому мы инициализируем драйвер за пределами класса страницы. Ex: WebDriver driver = новый FirefoxDriver(); LoginPage login = new LoginPage (драйвер); .....

Смежные вопросы