Пример #1
0
def test_copy_product_in_catalog(browser, fixture_authorization_admin):
    """Тест копирует под админом  продукт в каталоге"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # указываем значения для поиска в форме фильтра: наименование продукта
    CatalogPage(browser).set_product_name_in_filter("HP LP3065")
    CatalogPage(browser).button_filter()
    # находим и записываем в список все checkbox в списке, устанавливаем первый,
    # запоминаем количество продуктов с данным наименованием
    CatalogPage(browser).set_checkbox_in_product_list()
    count_product = CatalogPage(browser).len_product_list()
    # нажимаем кнопку копировать, проверям наличие сообщение об успешной операции, закрываем сообщение
    CatalogPage(browser).button_copy()
    MainPage(browser).wait_message()
    MainPage(browser).button_close_mess()
    # находим и записываем в список все checkbox в списке, проверяем, что количество продукта увеличилось на 1
    count_checkbox_after = CatalogPage(browser).len_product_list()
    # count_product_after = len(checkbox_after)
    count_checkbox_after == count_product + 1
    # выбираем послений продукт и удаляем его, подтверждаем удаление, проверям наличие сообщение об успешной
    CatalogPage(browser).set_last_checkbox_in_product_list()
    CatalogPage(browser).button_delete()
    Alert(browser).accept()
    MainPage(browser).wait_message()
Пример #2
0
def test_add_download_file(browser, fixture_authorization_admin):
    """Тест добавляет под админом новый продукт в каталог"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Downloads")
    browser.find_element_by_link_text("Downloads").click()
    # нажимаем кнопку создать новую загрузку файла
    DownloadPage(browser).add_new_download()
    # указываем наименование загрузки и нажимаем кнопку upload
    download_name = "this is download " + ''.join(
        random.choice(string.digits) for _ in range(5))
    DownloadPage(browser).set_download_name(download_name)
    browser.find_element_by_css_selector(
        DownLoadLocators.button_upload).click()
    # находим файл
    dirname = os.path.dirname(__file__)
    filename = os.path.join(dirname, 'ee67d5e51ec5993dea7c065e064fd8c5.jpg')
    # после нажатия кнопки upload на форме появляется нужный input type=file, передаем ему нащ файл
    DownloadPage(browser).set_input_file(filename)
    DownloadPage(browser).set_file_name(filename)
    # ждем и переключаемся на alert, подтверждаем на не загрузку
    ActionChains(browser).pause(0.5).perform()
    browser.switch_to.alert.accept()
    # нажимаем сохранить и ждем сообщение об успешной загрузки
    DownloadPage(browser).save_download()
    MainPage(browser).wait_message()
    DownloadPage(browser).find_dowload_name(download_name)
Пример #3
0
def test_open_other_page_in_product_list(browser, fixture_authorization_admin):
    """Тест переходит на другую страницу в Product List"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # нажимаем на страницу 2
    CatalogPage(browser).open_page("2")
    # проверяем, что вторая страница стала активной
    CatalogPage(browser).active_page("2")
Пример #4
0
def test_edit_product_in_catalog_price_image(browser,
                                             fixture_authorization_admin):
    """Тест редактирует под админом  продукт в каталоге"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # указываем значения для поиска в форме фильтра:  стоимость продуктов, фильтруемся по нулевой стоимости
    CatalogPage(browser).set_product_price_in_filter("0.00")
    CatalogPage(browser).button_filter()
    # находим и записываем в список все кнопки Edit в списке, нажимаем на первую кнопку
    CatalogPage(browser).set_buttons_edit_in_product_list()
    # переходитм в раздел Data и изменяем цену на рандомную
    browser.find_element_by_link_text("Data").click()
    CatalogPage(browser).set_product_price(''.join(
        random.choice(string.digits) for _ in range(3)))
    # переходитм в раздел Image и нажимаем на иконку с изображение
    browser.find_element_by_link_text("Image").click()
    browser.find_element_by_id("thumb-image").click()
    # ожидаем появление элемента с интрументами по управлению изображением
    # нажимаем кнопку редактировать нажимаем на demo для выбора изображения
    CatalogPage(browser).set_product_image()
    CatalogPage(browser).select_product_image("gift-voucher-b irthday.jpg")
    # нажимаем кнопку сохранить и проверям наличие сообщение об успешной операции
    CatalogPage(browser).save_product()
    MainPage(browser).wait_message()
Пример #5
0
def test_open_product_catalog_with_log_browser(browser,
                                               fixture_authorization_admin):
    """Тест открывает раздел products в catalog и выаодит логи браузера"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    logger.info("виды логов нашел следующие: ")
    logger.info(browser.log_types)
    log = browser.get_log("browser")
    logger.info("в данных логах следующая информация")
    logger.info(log)
Пример #6
0
def test_filter_products_in_catalog(browser, fixture_authorization_admin):
    """Тест выполняет фильтрацию продуктов в каталоге под админом"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # указываем значения для поиска в форме фильтра: наименование продукта(ищем по контекстному поиску), модель, стоимость,
    # количество и статус
    CatalogPage(browser).set_product_name_in_filter("Apple")
    CatalogPage(browser).wait_menu()
    browser.find_element_by_link_text("Apple Cinema 30\"").click()
    CatalogPage(browser).set_product_model("Product 15")
    CatalogPage(browser).set_product_price_in_filter("100")
    CatalogPage(browser).set_product_quantity_in_filter("990")
    CatalogPage(browser).set_product_status_in_filter("Enabled")
    CatalogPage(browser).button_filter()
    CatalogPage(browser).find_filter_element("Apple Cinema 30\"")
Пример #7
0
def test_edit_product_in_catalog_price(browser, fixture_authorization_admin):
    """Тест редактирует под админом  продукт в каталоге"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # указываем значения для поиска в форме фильтра:  стоимость продуктов, фильтруемся по нулевой стоимости
    CatalogPage(browser).set_product_price_in_filter("0.00")
    CatalogPage(browser).button_filter()
    # находим и записываем в список все кнопки Edit в списке, нажимаем на первую кнопку
    CatalogPage(browser).set_buttons_edit_in_product_list()
    # переходитм в раздел Data и изменяем цену на рандомную
    browser.find_element_by_link_text("Data").click()
    CatalogPage(browser).set_product_price(''.join(
        random.choice(string.digits) for _ in range(3)))
    # нажимаем кнопку сохранить и проверям наличие сообщение об успешной операции
    CatalogPage(browser).save_product()
    MainPage(browser).wait_message()
Пример #8
0
def test_add_new_product_in_catalog(browser, fixture_authorization_admin,
                                    fixture_create_random_string):
    """Тест добавляет под админом новый продукт в каталог"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # нажимаем кнопку добавить новый продукт
    CatalogPage(browser).button_add_new_product()
    # вводим  поля: имя, описание, метатег, модель
    name = fixture_create_random_string + (''.join(
        random.choice(string.digits) for _ in range(10)))
    CatalogPage(browser).set_product_name(name)
    CatalogPage(browser).set_product_description(
        "This is autoTesting description New Product in Catalog")
    CatalogPage(browser).set_product_meta_tag(name)
    browser.find_element_by_link_text("Data").click()
    CatalogPage(browser).set_product_model("Product" + (''.join(
        random.choice(string.digits) for _ in range(5))))
    # нажимаем кнопку сохранить и проверям наличие сообщение об успешной операции
    CatalogPage(browser).save_product()
    MainPage(browser).wait_message()
Пример #9
0
def test_delete_product_in_catalog(browser, fixture_authorization_admin):
    """Тест удаляет под админом  продукт в каталоге"""
    # открываем каталог и заходим в Products
    CatalogPage(browser).open_catalog()
    CatalogPage(browser).wait_section_in_menu_navigation("Products")
    browser.find_element_by_link_text("Products").click()
    # указываем значения для поиска в форме фильтра:  стоимость продуктов, фильтруемся по нулевой стоимости
    CatalogPage(browser).set_product_price_in_filter("0.00")
    CatalogPage(browser).button_filter()
    # находим и записываем в список все checkbox в списке, устанавливаем первый
    CatalogPage(browser).set_checkbox_in_product_list()
    # нажимаем кнопку удалить, подтверждаем удаление, проверям наличие сообщение об успешной операции
    CatalogPage(browser).button_delete()
    Alert(browser).accept()
    MainPage(browser).wait_message()