Всем привет!
Использую вот этот проект для построения ‘настоящего’ PageObject
ui-tests-example/pages at master · TimurNurlygayanov/ui-tests-example · GitHub
Тут всё понятно, работает, но если я добавляю другие страницы проекта и обращаюсь к ним в коде(создавая их объекты) то страница текущая перезагружается потому что в базовом классе страницы в методе init есть self.get(url), подскажите пожалуйста как этого избежать? Нужно как-то иначе реализовывать init в новых страницах которые наследуются от base.py
Привет. я как юниор не настаивая предположу, что планировалось закрывать браузер фикстурой после каждого теста, а иначе мало смысла помещать wd.get() в конструктор.
если отвечать на вопрос в том виде как он сформулирован, могу предложить переопределять конструктор без расширения.
в методе init наследника мы вызываем super().init() , - выполняются все действия в init класса-предка, в числе которых driver.get. (Как не вызвать - пример в пастбине)
Но это не очень подход, лучше отредактировать предка или разбить предка на 2 класса, чтобы один класс стал по-настоящему базовым и его функциональность не нужно было изменять.
Я бы просто убрал self.get(url) из init базового класса. Держать его там может быть удобно только для простых случаев, или когда у нас тестами можно все page objects отдельно друг от друга протестировать.
Вот альтернативные варианты базовых классов: