В общем, этот вид сценария является хорошим кандидатом для шаблона.Объедините это с шаблоном Page Object, поскольку вы используете Webdriver, и вы сможете минимизировать дублирующийся код.
Идея состоит в том, что вы создадите некоторый вспомогательный объект, который выполняет часто используемые шаги.Большинство шагов одинаковы для всех браузеров.Но поскольку ваш пользовательский интерфейс меняется в зависимости от браузера, определенные действия потребуют пользовательских шагов.Таким образом, у вас будут конкретные реализации, которые наследуют большинство шагов от абстрактной базы, но реализуют специфические функциональные возможности, в которых различия пользовательского интерфейса делают невозможным повторное использование одного и того же базового кода.
Например, на странице, где у вас естьв двух полях ввода ваша реализация Firefox требуемого действия будет иметь два щелчка, а ваша реализация Chrome - только один.Этапы входа в систему и навигации (теоретически) будут одинаковыми и могут быть переданы через базовый класс.
Вы настраиваете свои вспомогательные объекты (фабрика страниц и т. Д.) В методе SetUp вашей инфраструктуры тестирования.Ваши тесты вызывают соответствующие методы для вспомогательных объектов для выполнения действий, а затем вы проверяете результаты.
Ссылки: