t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f7487920b78> #<Tag:0x00007f7487920ab0> #<Tag:0x00007f7487920970> #<Tag:0x00007f74879208a8>

Здравствуйте. Создавая проект по паттерну Page Object, я столкнулся со следующей проблемой. Для лучшего понимания приведу код:

Есть класс с элементами, которые создаются при помощи аннотации FindBy

Есть класс с методами, которые используют данные элементы:
image

Инициализация драйвера и использование PageFactory происходит следующим образом:
image

Вот пример теста:

Проблема заключается в том, что при запуске теста все элементы, которые принадлежат странице сразу пытаются инициализироваться, но некоторые из них не могут быть инициализированы на данном этапе и происходит долгая загрузка, которая не дает, например, отладить и т.п.

Для лучшего понимания проблемы:

Я понимаю, что в структуре есть ошибки, но не могу осознать какие.
Заранее спасибо.

Ненужно инициализировать все страницы сразу.
Инициализируйте их по ходу появления. Вы находитесть на LoginPage при этом пытаетесь инициализировать registrationPage, taskOne, taskFour, taskFive.
Для удобство инициализацию каждой страницы можно делать в конструкторе страницы.

2 Симпатий

Действительно, благодарю за совет!

Инициализацию элементов надо вынести в базовый класс для страницы, соответственно когда вы в коде будете создавать объект класса страницы, элементы и будут инициализироваться.
И не придётся это писать в каждой странице.