Создание проекта (фреймворка) - Page-Object model (POM). Стек: Python, Selenium, Pytest

Поделиться
HTML-код
  • Опубликовано: 15 дек 2024

Комментарии • 61

  • @Кирилл-ь5р4з
    @Кирилл-ь5р4з Год назад +1

    Спасибо за достаточно понятную, максимально структрурированную и полезную информацию

  • @a1berich
    @a1berich 8 месяцев назад +2

    Вот таких тем мало по паттерну! Спасибо!

  • @FreddieZak
    @FreddieZak Год назад +1

    Спасибо за проделанную работу!

  • @kidsuper6767
    @kidsuper6767 Год назад +2

    Отличное видео, спасибо!

  • @user-els1z6htp7
    @user-els1z6htp7 9 месяцев назад

    Содержательно. После видео есть общая картина структуры🤝

  • @yuliapopova3273
    @yuliapopova3273 Год назад +1

    Спасибо за видео, очень помогло, тем более бесплатное)

  • @IvanTsanga
    @IvanTsanga 5 месяцев назад

    Спасибо ,что сэкономили время и нервы))

  • @rmstr7
    @rmstr7 10 месяцев назад

    Огромное спасибо за проделанную работу !!!

  • @klimtro
    @klimtro 5 месяцев назад

    спасибо. интересно, Евгений

  • @kevinkeegan6076
    @kevinkeegan6076 Год назад +4

    Hello 👋 hello ,если не трудно можете пожалуйста залить это на гит хаб и скинуть ссылку .спасибо.

  • @Lyudmila157
    @Lyudmila157 11 месяцев назад

    все четко, понятно, спасибо!

    • @SeniorTester
      @SeniorTester  11 месяцев назад

      Пользуйтесь)))

  • @DemetriuszStrykowski
    @DemetriuszStrykowski Год назад

    Спасибо! Очень полезный канал у вас! Поддержим крутой канал комментариями! ✌🤞

  • @СеменХеруимов
    @СеменХеруимов 9 месяцев назад

    Мощно :)

  • @inzoddex8312
    @inzoddex8312 10 месяцев назад

    В моменте, когда ты в классе BasePage описываешь метод find 11:37 во время печати self.browser. на этом месте как-то можно сделать, чтобы выходили подсказки методов, как это реализовать?

    • @SeniorTester
      @SeniorTester  10 месяцев назад +1

      Это делается с помощью аннотаций
      Нужно импортнуть Webdriver из примерно отсюда from selenium.common.remote.webdriver import WebDriver (в точности пути не уверен, с телефона пишу)
      А потом добавить аннотацию в инит def __init__(driver: WebDriver)
      И тогда во всём этом классе и во всех дочерних появятся подсказки. Если что, пиши мне в телегу

  • @ЮлияСмыкова-ч1ф
    @ЮлияСмыкова-ч1ф 4 месяца назад

    В vs code в терминале возникает ошибка from pages.simple_button import SimpleButtonPagе
    E ModuleNotFoundError: No module named 'pages.simple_button'. Подскажите, пожалуйста, в чем может быть дело?

    • @SeniorTester
      @SeniorTester  4 месяца назад

      Нужно смотреть на всю структуру

  • @kevinkeegan6076
    @kevinkeegan6076 Год назад +1

    Only your video l understand 😊OOП и class 😊

  • @kevinkeegan6076
    @kevinkeegan6076 Год назад

    You best 👌 teacher and good luck 👍

  • @МихаилКорепанов-ч4д
    @МихаилКорепанов-ч4д 11 месяцев назад

    Возникает интересный эффект . Когда пишут browser.get - всё понятно , потому что так пишут во всех учебниках . А когда пишут
    simple_page - всё становится не понятным даже для того кто умеет программировать . Пойди разберись кто чего понапридумывал на своём проекте . У всех всё будет по разному .

    • @SeniorTester
      @SeniorTester  11 месяцев назад

      Ну, те, кто понапридумыаал уже в своём проекте, уже не изучают основы.

  • @zombiekiller666
    @zombiekiller666 6 месяцев назад

    Здравствуйте, в vs code в терминале возникает ошибка "ModuleNotFoundError: No module named 'pages'", при том что в импорте все само подтягивается и показывает что все хорошо. Не могу разобраться(

    • @SeniorTester
      @SeniorTester  6 месяцев назад

      А импортировали Pages или pages?

    • @SeniorTester
      @SeniorTester  6 месяцев назад

      А, это я ерунду спросил в прошлом коменте.
      Нужно видеть структуру проекта, чтобы сказать вам что не так

    • @zombiekiller666
      @zombiekiller666 6 месяцев назад

      ​@@SeniorTester Скачал PyCharm и если запустить файл с тестом через Run, то все нормально запускается и ошибку не выдает, но если открыть файл теста через терминал используя "pytest -v", то опять вылазит ошибка как в vs code ModuleNotFoundError: No module named 'pages'.

    • @zombiekiller666
      @zombiekiller666 6 месяцев назад

      @@SeniorTester структура как у вас

    • @SeniorTester
      @SeniorTester  6 месяцев назад

      Скорее всего, файл conftest у вас находится в папке с тестами, а не в корне проекта

  • @yuliapopova3273
    @yuliapopova3273 Год назад

    Подскажите, есть в каком -то видео автотест с обращением к API и проверкой результата?

    • @SeniorTester
      @SeniorTester  Год назад +1

      Есть обращение к апи и распечатывание результата ruclips.net/video/53Wbda8vtAQ/видео.html

    • @yuliapopova3273
      @yuliapopova3273 Год назад

      @@SeniorTester Как проверка возвращаемого результата в реальных тестах с API происходит, через assert или что-то другое используют?

    • @johnyelasto
      @johnyelasto Год назад

      ​@@yuliapopova3273assert проверят вообще всё что хочет и используется постоянно

  • @schmexus
    @schmexus Год назад

    Отличное объяснение! Всё понятно, было бы здорово увидеть пример создания фреймворке общие, которые можно использовать для разных сайтов к примеру, либо фреймворк для самого pytest?

    • @SeniorTester
      @SeniorTester  Год назад

      Не думаю, что такое возможно. Все-таки фреймворк создаётся под конкретный сайт, с конкретными локаторами и последовательностями действий, которые возможны только для этого сайта

  • @FimaMillston
    @FimaMillston Год назад

    Весьма наглядно. Само видео требует тестов по проверке качества. К сожалению, в речи упоминаются ссылки, а по факту ссылки не появляются.
    Спасибо Вам, что делитесь своими знаниями, хоть, на мой взгляд, и весьма высокомерно по отношению к джунам.

    • @SeniorTester
      @SeniorTester  Год назад +1

      Да ладно вам. Вполне нормально ожидать, что джун тестировщик не будет знать ничего о программировании. А какие ссылки не отображаются? Я то-ли не нашёл, то-ли youtube кому-то их показывает, а кому-то нет.

    • @FimaMillston
      @FimaMillston Год назад

      @@SeniorTester Проверю еще раз. Не показало, почему-то при просмотре.
      А по джунам - все ж когда-то джуны. По Вашим видео вполне можно начать разбиратся и понимать что и как. Спасибо!

  • @SuperChakichaki
    @SuperChakichaki 9 месяцев назад

    Спасибо за видео. Подскажите, пожалуйста, а если в рамках одного теста будет использоваться несколько классов страниц (например, начали тест на одной странице, а закончили на другой), как в таком случае происходит инициализация объектов класса? Вначале в переменную присваиваем объект класса страницы main, делаем клик по переходу на вторую страницу с другим классом. В таком случае нужно опять создавать переменную и передавать в нее браузер?

    • @SeniorTester
      @SeniorTester  9 месяцев назад +1

      Ну, что-то около того, да.

  • @stone_92
    @stone_92 Год назад

    Добрый день ! Подскажите, пожалуйста, почему может быть, если файл conftest лежит в корне проекта, то тест выдает ошибку из-за того, что фикстуры не найдены (импорт помогает, но должно без него ведь работать), а если файл conftest перенести в папку в тестами, то всё проходит корректно ? В чем причина, не могли бы вы мне подсказать ?

    • @SeniorTester
      @SeniorTester  Год назад

      Нужно смотреть на структуру проекта и на то как вы запускаете тесты. Можете мне написать в инстаграм- разберёмся

  • @ramilhafiz6741
    @ramilhafiz6741 10 месяцев назад

    Огромное спасибо за Ваш труд. Лучшие уроки по данной тематике.
    У меня вопрос: как при запуске нового теста оставаться на той же уже открытой странице?

    • @SeniorTester
      @SeniorTester  10 месяцев назад

      Нужно выбрать скоуп для фикстуры. Если нужно всегда оставаться на одной странице, то можно такие тесты расположить в отдельном файле и фикстуру прописать в этом файле и сделать ей scope='module'

    • @ramilhafiz6741
      @ramilhafiz6741 10 месяцев назад

      @@SeniorTester спасибо!

  • @luckytima2315
    @luckytima2315 10 месяцев назад

    Не могу понять в чем проблема, не видел фикстуру я вылечил это закинув conftest в папку tests. теперь он у меня браузер failed “browser = кликнуть->зкрыть все работает , мистика

    • @SeniorTester
      @SeniorTester  10 месяцев назад

      Охх, ну тут бы на код посмотреть

    • @luckytima2315
      @luckytima2315 10 месяцев назад

      @@SeniorTester я не знаю как это работает, но на версий питона 3.8 все норм 😅

  • @Ruslan-ps9rz
    @Ruslan-ps9rz 8 месяцев назад

    Добрый день. Подскажите, плиз, это нормально если создать base_page, потом унаследовав ее сделать Login_page, а после все страницы наследовать от Login page, Что бы вызывать методы логина от текущих страниц и не создавать экземпляр класса логин в тесте?

    • @SeniorTester
      @SeniorTester  8 месяцев назад

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

  • @ЛианаВасилевская-в6у

    fixture 'browser' not found выдаёт

    • @SeniorTester
      @SeniorTester  Год назад

      Скорее всего, сбились настройки пайчарма. Напишите в сообщения в какую-нибудь мою соцсеть - разберемся

    • @rusmaverick95
      @rusmaverick95 Год назад

      Создайте файл базового класса, создайте BaseClass и унаследуйте вашу фикстуру, затем используйте метод наследования BaseClass во все ваши тесты

  • @luckytima2315
    @luckytima2315 10 месяцев назад

    Мы больше в fixture не пишем yield?

    • @SeniorTester
      @SeniorTester  10 месяцев назад

      Если нужны постусловия, то пишем, конечно

  • @loginoff6322
    @loginoff6322 9 месяцев назад

    Привет, а путь к драйверу или сам драйвер где ?

    • @SeniorTester
      @SeniorTester  9 месяцев назад

      Уже полтора года как не нужно с ним заморачиваться. Селениум запилил функцию selenium manager, которая сама разруливает все заморочки с драйвером

  • @FreddieZak
    @FreddieZak Год назад

    Здравствуйте, это ж у вас PyCharm?

  • @Max-gl5cl
    @Max-gl5cl 9 месяцев назад

    а где вода минут на 15😁

    • @SeniorTester
      @SeniorTester  9 месяцев назад

      Блин, сорян, забыл. В следующий раз добавлю 😜