WebDriver - невозможно переключиться с FFDriver на ChromeDriver или IEDriver - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь создать большой пакет селена в Firefox, но мне также интересно, насколько трудными будут все эти тесты, работающие в Chrome или IE, даже если страница просто отображается другим способом и уже сложна связать их и заставить другие драйверы работать.

Любое предложение или опыт, чтобы поделиться? Заранее спасибо, Лоренцо.

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

В общем, этот вид сценария является хорошим кандидатом для шаблона.Объедините это с шаблоном Page Object, поскольку вы используете Webdriver, и вы сможете минимизировать дублирующийся код.

Идея состоит в том, что вы создадите некоторый вспомогательный объект, который выполняет часто используемые шаги.Большинство шагов одинаковы для всех браузеров.Но поскольку ваш пользовательский интерфейс меняется в зависимости от браузера, определенные действия потребуют пользовательских шагов.Таким образом, у вас будут конкретные реализации, которые наследуют большинство шагов от абстрактной базы, но реализуют специфические функциональные возможности, в которых различия пользовательского интерфейса делают невозможным повторное использование одного и того же базового кода.

Например, на странице, где у вас естьв двух полях ввода ваша реализация Firefox требуемого действия будет иметь два щелчка, а ваша реализация Chrome - только один.Этапы входа в систему и навигации (теоретически) будут одинаковыми и могут быть переданы через базовый класс.

Вы настраиваете свои вспомогательные объекты (фабрика страниц и т. Д.) В методе SetUp вашей инфраструктуры тестирования.Ваши тесты вызывают соответствующие методы для вспомогательных объектов для выполнения действий, а затем вы проверяете результаты.

Ссылки:

0 голосов
/ 18 октября 2011

Я обнаружил, что Selenium совсем не подходит для работы в разных браузерах. Многие маленькие причуды мешают одному тесту работать гладко во всех поддерживаемых браузерах. Конечно, многое зависит от того, насколько сложны тестируемые страницы и насколько сложен код тестирования (я предполагаю, что он кодируется, а не записывается).

Возможное решение - создать слой абстракции поверх WebDrivers, который предоставляет общие действия при нормализации поведения в зависимости от экземпляра браузера (подумайте, как работает jQuery).

...