Комментарии 10
В примере с selenium-python.readthedocs.io — реализация с другим тестовым фреймворком + в этом гайде нужно быть в контексте «реализованного».Открыв раздел Page Object — не понимаешь от куда там эти методы и что они делают. Поэтому я и решил сделать сделать на примере с одной страницей. Про курсы в Stepik — аналогично. Чтобы добраться до этого раздела необходимо пройти весь курс и сделать подготовительную работу.
Ваш комментарий услышал, в следующие разы постараюсь более наглядно.
С каждым днём архитектура становится всё более поддерживаемой :) Единственное, что количество локаторов и кредо нагромождается в одном файле, но зато с этим легко работать в дальнейшем :)
Ещё раз спасибо :) Удачи Вам в продолжении автоматизации!
Не хотелось бы обидеть, но эта реализация напомнила первую картинку из мема про "как рисовать сову". Туториолов этого уровня хватает, а вот как эту самую сову в питоне дорисовать — мало информации.
В том же выше упомянутом курсе на Stepic говорят, что обычно выбирают одну из двух концепций:
1) каждый метод PO возвращает self или другой PO
2) методы ничего не возвращают
Первый способ упрощает автокомплит, но в соединении с аннотациями типов выглядит уродско (все эти импорты посреди модуля).
У вас же в примере используется третий вариант: возвращать элементы. Расскажите, почему?
Спасибо за комментарии.
В питоне, если не возвращать функцию — она будет возвращать None.
Это можно использовать для переиспользования элементов и их атрибутов.
Для этого обычно элементы делают пропертями.
Я спрашиваю, т.к. из статьи непонятно, как вы развиваете паттерн дальше. Возможны ли в вашем подходе методы, которые будут возвращать PO? Если да, то как решаете проблемы с циклическими импортами?
Мы вообще для PO используем PyPOM, вроде почти довольны, но в целом на джаве этот паттерн с меньшими костылями реализуется.
Реализация паттерна Page Object на Python + pytest