def test_database(database, browser): """ Проверка работы, добавления и удаления данных БД с помощью Selenium :param database: :param browser: :return: """ # Добавляем валюту в базу: database.add_currency() admin_login = AdminLogin(browser.wd) admin_page = AdminPage(browser.wd) # Открывам страницу администратора: browser.open_admin_page() # Очищаем поля и username вводим данные для авторизации: admin_login.fill_username(email) # Очищаем поля и password вводим данные для авторизации: admin_login.fill_password(password) # Нажимаем кнопку Login для входа в аккаунт: admin_login.login_button() # Получаем список валют на странице: titles = admin_page.get_currencies_titles() # Удаляем валюту из базы: database.delete_currency() # Проверяем, что добавленная валюта есть на странице: assert 'Russia Ruble' in titles
def admin_authorization(browser): """ Авторизация под учетной записью администратора :param browser: """ browser.log.info('Starting admin_authorization') admin_login = AdminLogin(browser.wd) admin_page = AdminPage(browser.wd) # Открывам страницу администратора: browser.open_admin_page() # Очищаем поля и username вводим данные для авторизации: admin_login.fill_username(email) # Очищаем поля и password вводим данные для авторизации: admin_login.fill_password(password) # Нажимаем кнопку Login для входа в аккаунт: admin_login.login_button() browser.log.info('Logging out') try: admin_page.logout() except Exception as e: browser.log.error(f'Exception - {e}')
def test_edit_product(browser): """ Изменение продукта в Product List :param browser: """ admin_page = AdminPage(browser.wd) # Авторизация под учетной записью администратора: admin_authorization(browser) # Navigation -> Catalog -> Products: open_products_from_catalog(browser) # Выбираем продукт для измения и нажимаем на него: admin_page.product_for_edit() # Ищем кнопку "Edit" и нажимаем на нее: admin_page.edit_button() # Вводим данные нового продукта: add_product(browser) # Ищем кнопку "Save" и нажимаем на нее: admin_page.save_button() # Проверяем успешность изменения продукта в Product List: alert_success = admin_page.alert_success() assert 'Success: You have modified products!' in alert_success
def test_database(db, browser): db.add_currency() admin_login = AdminLogin(browser.wd) admin_page = AdminPage(browser.wd) browser.open_admin_login_page() admin_login.fill_username('user') admin_login.fill_password('bitnami1') admin_login.login() titles = admin_page.get_currencies_titles() db.delete_currency() assert 'test' in titles
def login(driver, request): """login to admin page""" url = request.config.getoption("--address") + 'admin/' driver.get(url) admin_page = AdminPage(driver) admin_page.login(login="******", password="******") current_url = driver.current_url parsed = parse.urlparse(current_url) parse.parse_qs(parsed.query) token = parse.parse_qs(parsed.query)['user_token'][0] return token
def test_admin_login(browser): browser.log.info('Test test_admin_login starting') admin_login = AdminLogin(browser.wd) admin_page = AdminPage(browser.wd) browser.open_admin_login_page() admin_login.fill_username('user') admin_login.fill_password('bitnami1') admin_login.login() browser.log.info('Logging out') try: admin_page.logout() except Exception as e: browser.log.error(f'Exception - {e}')
def test_add_new_product(browser): """ Добавление нового продукта в Product List :param browser: """ admin_page = AdminPage(browser.wd) # Авторизация под учетной записью администратора: admin_authorization(browser) # Navigation -> Catalog -> Products: open_products_from_catalog(browser) # Ищем кнопку "Add new" и нажимаем на нее: admin_page.add_new_button() # Добавляем продукт: add_product(browser) # Ищем кнопку "Save" и нажимаем на нее: admin_page.save_button() # Проверяем успешность добавления нового продукта в Product List: alert_success = admin_page.alert_success() # Проверяем успешность добавления нового продукта в Product List: assert 'Success: You have modified products!' in alert_success
def test_delete_product(browser): """ Удаление продукта из Product List :param browser: :return: """ admin_page = AdminPage(browser.wd) utils = Utils(browser.wd) # Авторизация под учетной записью администратора: admin_authorization(browser) # Navigation -> Catalog -> Products: open_products_from_catalog(browser) # Выбираем продукт для удаления: admin_page.product_for_delete() # Ищем кнопку "Delete" и нажимаем на нее: admin_page.delete_button() # Подтверждаем действие удаления на странице браузера: utils.accept_alert() # Проверяем успешность удаления продукта из Product List: alert_success = admin_page.alert_success() assert 'Success: You have modified products!' in alert_success
def test_file_upload(browser): file_path = '/home/chaplygin/Downloads/Telegram Desktop/image_2019-09-11_15-22-17.png' utils = Utils(browser.wd) admin_login = AdminLogin(browser.wd) admin_page = AdminPage(browser.wd) browser.open_admin_login_page() admin_login.fill_username('user') admin_login.fill_password('bitnami1') admin_login.login() admin_page.open_downloads() admin_page.open_add_new_download() utils.create_file_upload_form() admin_page.upload_file(file_path) is_file_uploaded = utils.is_file_uploaded() assert is_file_uploaded == True
def open_products_from_catalog(browser): """ Navigation -> Catalog -> Products :param browser: """ admin_page = AdminPage(browser.wd) # В разделе Navigation выбираем Catalog: admin_page.click_catalog() # В разделе Catalog выбираем Products: admin_page.click_products()
def add_product(browser): """ Добавление продукта :param browser: """ admin_page = AdminPage(browser.wd) # Ищем поле "Product name", очищаем и вводим данные: admin_page.fill_product_name(product_name) # Ищем поле "Meta tag title", очищаем и вводим данные: admin_page.fill_meta_tag_title(meta_tag_title) # В навигационное панеле ищем "Data" и нажимаем: admin_page.click_navigation_data() # Ищем поле "Model", очищаем и вводим данные: admin_page.fill_model(model) # Ищем поле "Price", очищаем и вводим данные: admin_page.fill_price(price) # Ищем поле "Minimum Quantity", очищаем и вводим данные: admin_page.fill_min_quantity(min_quantity)
def admin_page(browser): return AdminPage(browser)
def admin_page(request, driver): driver.get(request.config.getoption("--address") + "admin/") return AdminPage(driver)