Этот вопрос довольно старый, но я подумал, что все же стоит поделиться им.
В общем, сначала я создам необходимые классы объектов страницы.Затем я создаю отдельный класс для тестовой логики, в который вы помещаете свой «рабочий процесс пользователя» с кликами и другими взаимодействиями страниц.Из приведенного примера кода я предполагаю, что этот класс заменит main ().Это также класс, в который я включаю такие вещи, как testNG / junit, аннотации тестов и dataProviders (не обязательно, но если вы используете эти вещи, это может быть полезно отметить) В этом классе вы можете создавать экземпляры классов для страниц.вы будете взаимодействовать с , поскольку они вам нужны, поскольку созданный вами объект webdriver управляет браузером, а не классами страниц.
Выполнение таких действий позволяет вносить простые изменения в тестовые рабочие процессы, а также вобъекты страницы в случае, если фактические страницы изменены, или у вас просто есть новые требования к тестированию.
Мой любимый побочный эффект этого метода заключается в том, что класс с рабочим процессом может быть очень читабельным «сценарием» теста со всеми уродливыми деталями в реальных тестах, скрытыми под вызовами, такими как loginPage.Login ()и loginPage.LoginSucceeded (), чтобы при случайном проходе не отображались сведения о поиске учетных данных пользователя, обработке 404/400, поиске и нажатии кнопки входа и т. д.