Как организовать Selenium + Python тесты ?

Я пытаюсь разобраться в автоматизации тестирования с использованием Selenium WebDriver + Python.
Посмотрел API, написал пару тестов - вроде все понятно - как находить элементы, ожидания, как подключать драйвера браузеров.
Но, в чем вопрос: как организовать сам код тестов и проверки ? Например, есть код:

driverff.get("http://master.test.parfumplanet.ua/parfyumeriya/muzhskaya-parfyumeriya/drifter")
check_to_basket_appearance = WebDriverWait(driverff, 10).until(EC.presence_of_element_located((By.XPATH,"//a[@class='buttonC tobasket ']")))
# Добавляем товар в корзину
to_basket_button = driverff.find_element_by_xpath("//a[@class='buttonC tobasket ']")
actions = ActionChains(driverff)
actions.click(to_basket_button).perform() 

Этот тест просто скрипт вне функции, каких-либо ассертов, меня интересует какие практики обычно используются для структурирования таких тестов и проверок ? Видел в некоторых примерах использую библиотеку unittest, там каждый тест делают отдельной функцией. То есть интересует именно организация проверок в коде, обертывание их в try/except .

Думаю, коллеги еще накидают советов, я же дам ссылку на плейлист мой по автоматизации null - YouTube Там есть и ответы на текущие вопросы, а также те, которые возникнут далее :smile:

Это у Вас один большой монолитный кусок кода, который надо разбивать на более мелкие. Ну и описывать логику с помощью DSL. Тогда код станет намного проще поддерживать. Например реализовать абстракции по:

  1. работе с данными
  2. работе с драйвером
  3. работе с элементами на странице (там же и будут ожидания)
  4. работе с частями страниц
  5. работе с логгированием
  6. работе с хранилищем локаторов
  7. работе с конфигурации и кроссплатформенным запуском

Вы без проблем можете использовать Page Object паттерн для создания тестов. Я это показывал в этом видео (смотреть с 40й минуты).

Если хотите научиться писать тесты с помощью unittest pytest или nose в связке с webdriver, то вам пригодятся вот эти ссылки:

Ах да, я еще забыл написать о докладе, который я делал некоторое время назад на эту тематику.

Спасибо большое, все посмотрю и отпишу результат. Я почему-то думал, что PageObject нормально только с Java применять.

Да ладно, отлично ложиться в Python, и я скажу что все так и строят тесты на Python