Ejemplo n.º 1
0
    def test_add_new_product_without_photo_load(self, browser, wait):
        """ Проверка добавления продукта БЕЗ загрузки фото"""

        page = PageContainer(browser)
        page.tests_logger.info('test_add_new_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.create_new_product_without_photo_load(
            self.product_name_test, self.product_metatag, self.product_model)

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.success_alert)) == 1
        assert "ERROR" not in str(browser.get_log("browser"))

        assert DB.get_product_information(self.product_name_test)
        page.admin_products.delete_product()
        page.common.accept_alert()
        page.common.wait_element_present(wait,
                                         page.admin_products.success_alert)
Ejemplo n.º 2
0
    def test_delete_product(self, browser, wait):
        """ Проверка удаления продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_delete_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        products_quantity = DB.count_products()

        page.admin_products.delete_product()
        page.common.accept_alert()

        page.common.wait_element_present(wait,
                                         page.admin_products.success_alert)

        new_products_quantity = DB.count_products()

        assert new_products_quantity == products_quantity - 1

        assert browser.find_element(
            *page.admin_products.product_line_name).text == self.product_name
        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 3
0
    def test_find_product_by_name(self, browser, wait):
        """ Проверка фильтрации списка продуктов по наименованию продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_find_product_by_name')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        all_products_quantity = len(
            browser.find_elements(*page.admin_products.product_lines))

        page.admin_products.filter_products_by_name(self.product_name)

        filtered_products_quantity = \
            len(page.common.wait_element_present(wait, page.admin_products.product_lines))

        assert browser.find_elements(*page.admin_products.product_line_name
                                     )[0].text == self.product_name

        assert filtered_products_quantity != all_products_quantity

        page.admin_products.clear_filter()

        assert len(browser.find_elements(
            *page.admin_products.product_lines)) == all_products_quantity
        assert "ERROR" not in str(browser.get_log("browser"))
    def test_catalogue_page_find_elements(self, browser):
        """ Проверка наличия элементов на странице каталога"""

        page = PageContainer(browser)
        page.tests_logger.info('test_catalogue_page_find_elements')

        page.catalogue.go_to_catalogue_page()

        assert browser.find_element(*page.catalogue.menu_left).is_displayed()

        assert browser.find_element(
            *page.catalogue.view_result_as_list).is_displayed()
        assert browser.find_element(
            *page.catalogue.view_result_as_grid).is_displayed()

        assert browser.find_element(
            *page.catalogue.promo_banner).is_displayed()

        assert browser.find_element(
            *page.catalogue.product_card_1).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_price).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_image).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_name_link).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_add_cart).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_add_wishlist).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_compare).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 5
0
class TestProductPage:
    """ Тесты для страницы продукта магазина opencart """

    page = PageContainer(browser=None)

    @allure.testcase(page.common.test_case_url + 'test_case_id', 'Наименование тест-кейса')
    @allure.title("Проверка наличия основных элементов на странице продукта")
    def test_product_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на странице продукта"""

        page = PageContainer(browser)
        page.tests_logger.info('test_product_page_find_elements')

        page.product.go_to_product_page()

        assert browser.find_element(*page.product.product_image).is_displayed()

        assert browser.find_element(*page.product.description_tab).is_displayed()
        assert browser.find_element(*page.product.description_content).is_displayed()

        assert browser.find_element(*page.product.specification_tab).is_displayed()

        assert browser.find_element(*page.product.product_settings).is_displayed()
        assert browser.find_element(*page.product.add_cart_button).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 6
0
    def test_edit_product_name(self, browser, wait):
        """ Проверка редактирования наименования продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_edit_product_name')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_edit()
        page.admin_products.edit_product_name(self.product_name_test)

        assert DB.get_product_information(self.product_name_test)

        page.admin_products.go_to_products_page(wait)
        page.admin_products.open_product_form_for_edit()
        page.admin_products.edit_product_name(self.product_name)

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.product_form)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 7
0
    def test_admin_products_page_find_elements(self, browser, wait):
        """ Проверка наличия основных элементов на странице логина администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_admin_products_page_find_elements')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        assert browser.find_element(
            *page.admin_products.add_button).is_displayed()
        assert browser.find_element(
            *page.admin_products.copy_button).is_displayed()
        assert browser.find_element(
            *page.admin_products.delete_button).is_displayed()
        assert browser.find_element(
            *page.admin_products.filter_button).is_displayed()
        assert browser.find_element\
            (*page.admin_products.select_all_products_checkbox).is_displayed()
        assert browser.find_element(
            *page.admin_products.product_lines).is_displayed()
        assert browser.find_element(
            *page.admin_products.select_product_checkbox).is_displayed()
        assert browser.find_element(
            *page.admin_products.edit_product_button).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
    def test_login_to_admin_account_right(self, browser):
        """ Проверка успешного входа в аккаунт администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_login_to_admin_account_right')
        page.admin.go_to_admin_login_page()
        page.admin.login_to_admin()

        assert browser.find_element(*page.admin.logout_button).is_displayed()
        assert "ERROR" not in str(browser.get_log("browser"))
    def test_opencart_main_page_is_open(self, url, browser):
        """ Проверка открытия страницы сайта opencart """

        page = PageContainer(browser)
        page.tests_logger.info('test_opencart_main_page_is_open')

        browser.get(url)
        homepage_url = browser.current_url
        assert "opencart" in homepage_url

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 10
0
    def test_go_to_search_result(self, browser):
        """ Проверка перехода на страницу результата поиска """

        page = PageContainer(browser)
        page.tests_logger.info('test_go_to_search_result')

        browser.get(page.common.base_url)
        page.search_result.go_to_search_result_page()

        # assert browser.find_element(*page.search_result.search_input).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
    def test_login_to_admin_account_wrong(self, browser, wait):
        """ Проверка НЕуспешного входа в аккаунт администратора (неверный пароль)"""

        page = PageContainer(browser)
        page.tests_logger.info('test_login_to_admin_account_wrong')
        page.admin.go_to_admin_login_page()
        page.admin.login_to_admin(page.admin.login, self.admin_wrong_pasword)

        assert len(
            page.common.wait_element_present(wait,
                                             page.admin.alert_danger)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))
    def test_admin_login_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на странице логина администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_admin_login_page_find_elements')
        page.admin.go_to_admin_login_page()

        assert browser.find_element(*page.admin.name_input).is_displayed()
        assert browser.find_element(*page.admin.submit_button).is_displayed()
        assert browser.find_element(
            *page.admin.forgotten_password_link).is_displayed()
        assert browser.find_element(*page.admin.login_panel).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 13
0
    def test_main_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на главной странице """

        page = PageContainer(browser)
        page.tests_logger.info('test_main_page_find_elements')

        page.main.go_to_main_page()
        assert browser.find_element(*page.main.slider).is_displayed()
        assert browser.find_element(*page.main.slider_footer).is_displayed()
        assert browser.find_element(*page.main.featured_card_1).is_displayed()
        assert browser.find_element(*page.main.featured_card_2).is_displayed()
        assert browser.find_element(*page.main.featured_card_3).is_displayed()
        assert browser.find_element(*page.main.featured_card_4).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
class TestSearchResultPage:
    """ Тесты для страницы результата поиска"""

    page = PageContainer(browser=None)

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(
        "Проверка наличия основных элементов на странице результата поиска")
    def test_search_result_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на странице результата поиска"""

        page = PageContainer(browser)
        page.tests_logger.info('test_search_result_page_find_elements')

        page.main.go_to_main_page()
        page.search_result.go_to_search_result_page()

        assert browser.find_element(
            *page.search_result.search_input).is_displayed()

        assert browser.find_element(
            *page.search_result.category_list).is_displayed()
        assert browser.find_element(
            *page.search_result.category_desktops).is_displayed()
        assert browser.find_element\
            (*page.search_result.category_laptops_and_notebooks).is_displayed()
        assert browser.find_element(
            *page.search_result.category_components).is_displayed()
        assert browser.find_element(
            *page.search_result.category_tablets).is_displayed()
        assert browser.find_element(
            *page.search_result.category_software).is_displayed()
        assert browser.find_element(
            *page.search_result.category_phones_and_pdas).is_displayed()
        assert browser.find_element(
            *page.search_result.category_cameras).is_displayed()
        assert browser.find_element(
            *page.search_result.category_mp3_players).is_displayed()

        assert browser.find_element(
            *page.search_result.subcategories_checkbox).is_displayed()
        assert browser.find_element\
            (*page.search_result.search_in_product_descriptions_checkbox).is_displayed()
        assert browser.find_element(
            *page.search_result.search_button).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
    def test_logout_from_admin_account(self, browser, wait):
        """ Проверка успешного выхода из аккаунта администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_logout_from_admin_account')

        page.admin.go_to_admin_login_page()
        page.admin.login_to_admin()
        page.common.wait_element_present(wait, page.admin.logout_button)
        page.common.close_security_alert()

        page.admin.logout_from_admin()

        assert len(
            page.common.wait_element_present(wait, page.admin.login_panel)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 16
0
    def test_delete_product_dismiss(self, browser, wait):
        """ Проверка отмены удаления продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_delete_product_dismiss')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.delete_product()
        page.common.dismiss_alert()

        assert browser.find_element(
            *page.admin_products.product_line_name).text == self.product_name
        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 17
0
    def test_open_edit_product_form(self, browser, wait):
        """ Проверка открытия формы редактирования продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_open_edit_product_form')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_edit()

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.product_form)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))
class TestCommon:
    """ Тесты магазина opencart """

    page = PageContainer(browser=None)

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title("Проверка открытия страницы сайта opencart")
    def test_opencart_main_page_is_open(self, url, browser):
        """ Проверка открытия страницы сайта opencart """

        page = PageContainer(browser)
        page.tests_logger.info('test_opencart_main_page_is_open')

        browser.get(url)
        homepage_url = browser.current_url
        assert "opencart" in homepage_url

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 19
0
    def test_product_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на странице продукта"""

        page = PageContainer(browser)
        page.tests_logger.info('test_product_page_find_elements')

        page.product.go_to_product_page()

        assert browser.find_element(*page.product.product_image).is_displayed()

        assert browser.find_element(*page.product.description_tab).is_displayed()
        assert browser.find_element(*page.product.description_content).is_displayed()

        assert browser.find_element(*page.product.specification_tab).is_displayed()

        assert browser.find_element(*page.product.product_settings).is_displayed()
        assert browser.find_element(*page.product.add_cart_button).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
class TestCataloguePage:
    """ Тесты для страницы каталога магазина opencart """

    page = PageContainer(browser=None)

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка наличия элементов на странице каталога ")
    def test_catalogue_page_find_elements(self, browser):
        """ Проверка наличия элементов на странице каталога"""

        page = PageContainer(browser)
        page.tests_logger.info('test_catalogue_page_find_elements')

        page.catalogue.go_to_catalogue_page()

        assert browser.find_element(*page.catalogue.menu_left).is_displayed()

        assert browser.find_element(
            *page.catalogue.view_result_as_list).is_displayed()
        assert browser.find_element(
            *page.catalogue.view_result_as_grid).is_displayed()

        assert browser.find_element(
            *page.catalogue.promo_banner).is_displayed()

        assert browser.find_element(
            *page.catalogue.product_card_1).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_price).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_image).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_name_link).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_add_cart).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_add_wishlist).is_displayed()
        assert browser.find_element(
            *page.catalogue.product_card_compare).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 21
0
    def test_save_new_product_without_mandatory_fields(self, browser, wait):
        """ Проверка - нельзя сохранить новый продукт без имени, тега, модели """

        page = PageContainer(browser)
        page.tests_logger.info(
            'test_save_new_product_without_mandatory_fields')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_add()
        page.admin_products.save_product_form()

        assert len(browser.find_elements(*page.admin_products.error_text)) == 3
        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.false_alert)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))
    def test_search_result_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на странице результата поиска"""

        page = PageContainer(browser)
        page.tests_logger.info('test_search_result_page_find_elements')

        page.main.go_to_main_page()
        page.search_result.go_to_search_result_page()

        assert browser.find_element(
            *page.search_result.search_input).is_displayed()

        assert browser.find_element(
            *page.search_result.category_list).is_displayed()
        assert browser.find_element(
            *page.search_result.category_desktops).is_displayed()
        assert browser.find_element\
            (*page.search_result.category_laptops_and_notebooks).is_displayed()
        assert browser.find_element(
            *page.search_result.category_components).is_displayed()
        assert browser.find_element(
            *page.search_result.category_tablets).is_displayed()
        assert browser.find_element(
            *page.search_result.category_software).is_displayed()
        assert browser.find_element(
            *page.search_result.category_phones_and_pdas).is_displayed()
        assert browser.find_element(
            *page.search_result.category_cameras).is_displayed()
        assert browser.find_element(
            *page.search_result.category_mp3_players).is_displayed()

        assert browser.find_element(
            *page.search_result.subcategories_checkbox).is_displayed()
        assert browser.find_element\
            (*page.search_result.search_in_product_descriptions_checkbox).is_displayed()
        assert browser.find_element(
            *page.search_result.search_button).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 23
0
class TestMainPage:
    """ Тесты для главной страницы магазина opencart """

    page = PageContainer(browser=None)

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title("Проверка наличия основных элементов на главной странице")
    def test_main_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на главной странице """

        page = PageContainer(browser)
        page.tests_logger.info('test_main_page_find_elements')

        page.main.go_to_main_page()
        assert browser.find_element(*page.main.slider).is_displayed()
        assert browser.find_element(*page.main.slider_footer).is_displayed()
        assert browser.find_element(*page.main.featured_card_1).is_displayed()
        assert browser.find_element(*page.main.featured_card_2).is_displayed()
        assert browser.find_element(*page.main.featured_card_3).is_displayed()
        assert browser.find_element(*page.main.featured_card_4).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title("Проверка перехода на страницу результата поиска")
    def test_go_to_search_result(self, browser):
        """ Проверка перехода на страницу результата поиска """

        page = PageContainer(browser)
        page.tests_logger.info('test_go_to_search_result')

        browser.get(page.common.base_url)
        page.search_result.go_to_search_result_page()

        # assert browser.find_element(*page.search_result.search_input).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 24
0
    def test_copy_product(self, browser, wait):
        """ Проверка копирования продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_copy_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.copy_product()

        page.common.wait_element_present(wait,
                                         page.admin_products.success_alert)
        page.common.wait_element_present(wait,
                                         page.admin_products.product_line_name)

        assert browser.find_element(
            *page.admin_products.product_line_name).text == self.product_name
        assert "ERROR" not in str(browser.get_log("browser"))
class TestAdminPage:
    """ Тесты для страницы администратора магазина opencart """

    page = PageContainer(browser=None)
    admin_wrong_pasword = "blabla"

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(
        "Проверка наличия основных элементов на странице логина администратора"
    )
    def test_admin_login_page_find_elements(self, browser):
        """ Проверка наличия основных элементов на странице логина администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_admin_login_page_find_elements')
        page.admin.go_to_admin_login_page()

        assert browser.find_element(*page.admin.name_input).is_displayed()
        assert browser.find_element(*page.admin.submit_button).is_displayed()
        assert browser.find_element(
            *page.admin.forgotten_password_link).is_displayed()
        assert browser.find_element(*page.admin.login_panel).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title("Проверка успешного входа в аккаунт администратора")
    def test_login_to_admin_account_right(self, browser):
        """ Проверка успешного входа в аккаунт администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_login_to_admin_account_right')
        page.admin.go_to_admin_login_page()
        page.admin.login_to_admin()

        assert browser.find_element(*page.admin.logout_button).is_displayed()
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(
        "Проверка НЕуспешного входа в аккаунт администратора (неверный пароль)"
    )
    def test_login_to_admin_account_wrong(self, browser, wait):
        """ Проверка НЕуспешного входа в аккаунт администратора (неверный пароль)"""

        page = PageContainer(browser)
        page.tests_logger.info('test_login_to_admin_account_wrong')
        page.admin.go_to_admin_login_page()
        page.admin.login_to_admin(page.admin.login, self.admin_wrong_pasword)

        assert len(
            page.common.wait_element_present(wait,
                                             page.admin.alert_danger)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title("Проверка успешного выхода из аккаунта администратора")
    def test_logout_from_admin_account(self, browser, wait):
        """ Проверка успешного выхода из аккаунта администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_logout_from_admin_account')

        page.admin.go_to_admin_login_page()
        page.admin.login_to_admin()
        page.common.wait_element_present(wait, page.admin.logout_button)
        page.common.close_security_alert()

        page.admin.logout_from_admin()

        assert len(
            page.common.wait_element_present(wait, page.admin.login_panel)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))
Ejemplo n.º 26
0
class TestAdminProductsPage:
    """ Тесты для страницы Products администратора магазина opencart """

    page = PageContainer(browser=None)
    product_name = 'HP LP3065'
    product_name_test = 'A TEST'
    product_metatag = 'testtag'
    product_model = 'testmodel'

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(
        "Проверка наличия основных элементов на странице логина администратора"
    )
    def test_admin_products_page_find_elements(self, browser, wait):
        """ Проверка наличия основных элементов на странице логина администратора"""

        page = PageContainer(browser)
        page.tests_logger.info('test_admin_products_page_find_elements')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        assert browser.find_element(
            *page.admin_products.add_button).is_displayed()
        assert browser.find_element(
            *page.admin_products.copy_button).is_displayed()
        assert browser.find_element(
            *page.admin_products.delete_button).is_displayed()
        assert browser.find_element(
            *page.admin_products.filter_button).is_displayed()
        assert browser.find_element\
            (*page.admin_products.select_all_products_checkbox).is_displayed()
        assert browser.find_element(
            *page.admin_products.product_lines).is_displayed()
        assert browser.find_element(
            *page.admin_products.select_product_checkbox).is_displayed()
        assert browser.find_element(
            *page.admin_products.edit_product_button).is_displayed()

        assert "ERROR" not in str(browser.get_log("browser"))

    @pytest.mark.skip
    def test_add_new_product_with_photo_load(self, browser, wait):
        """ Проверка добавления продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_add_new_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.create_new_product_with_photo_load\
            (page.admin_products.product_photo_file_name,
             self.product_name,
             self.product_metatag,
             self.product_model)

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.success_alert)) == 1
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка добавления продукта БЕЗ загрузки фото ")
    def test_add_new_product_without_photo_load(self, browser, wait):
        """ Проверка добавления продукта БЕЗ загрузки фото"""

        page = PageContainer(browser)
        page.tests_logger.info('test_add_new_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.create_new_product_without_photo_load(
            self.product_name_test, self.product_metatag, self.product_model)

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.success_alert)) == 1
        assert "ERROR" not in str(browser.get_log("browser"))

        assert DB.get_product_information(self.product_name_test)
        page.admin_products.delete_product()
        page.common.accept_alert()
        page.common.wait_element_present(wait,
                                         page.admin_products.success_alert)

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка копирования продукта ")
    def test_copy_product(self, browser, wait):
        """ Проверка копирования продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_copy_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.copy_product()

        page.common.wait_element_present(wait,
                                         page.admin_products.success_alert)
        page.common.wait_element_present(wait,
                                         page.admin_products.product_line_name)

        assert browser.find_element(
            *page.admin_products.product_line_name).text == self.product_name
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка отмены удаления продукта ")
    def test_delete_product_dismiss(self, browser, wait):
        """ Проверка отмены удаления продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_delete_product_dismiss')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.delete_product()
        page.common.dismiss_alert()

        assert browser.find_element(
            *page.admin_products.product_line_name).text == self.product_name
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка удаления продукта ")
    def test_delete_product(self, browser, wait):
        """ Проверка удаления продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_delete_product')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        products_quantity = DB.count_products()

        page.admin_products.delete_product()
        page.common.accept_alert()

        page.common.wait_element_present(wait,
                                         page.admin_products.success_alert)

        new_products_quantity = DB.count_products()

        assert new_products_quantity == products_quantity - 1

        assert browser.find_element(
            *page.admin_products.product_line_name).text == self.product_name
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка открытия формы добавления нового продукта ")
    def test_open_add_new_product_form(self, browser, wait):
        """ Проверка открытия формы добавления нового продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_open_add_new_product_form')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_add()

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.product_form)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка открытия формы редактирования продукта ")
    def test_open_edit_product_form(self, browser, wait):
        """ Проверка открытия формы редактирования продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_open_edit_product_form')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_edit()

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.product_form)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(" Проверка редактирования наименования продукта ")
    def test_edit_product_name(self, browser, wait):
        """ Проверка редактирования наименования продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_edit_product_name')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_edit()
        page.admin_products.edit_product_name(self.product_name_test)

        assert DB.get_product_information(self.product_name_test)

        page.admin_products.go_to_products_page(wait)
        page.admin_products.open_product_form_for_edit()
        page.admin_products.edit_product_name(self.product_name)

        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.product_form)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(
        " Проверка фильтрации списка продуктов по наименованию продукта ")
    def test_find_product_by_name(self, browser, wait):
        """ Проверка фильтрации списка продуктов по наименованию продукта """

        page = PageContainer(browser)
        page.tests_logger.info('test_find_product_by_name')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        all_products_quantity = len(
            browser.find_elements(*page.admin_products.product_lines))

        page.admin_products.filter_products_by_name(self.product_name)

        filtered_products_quantity = \
            len(page.common.wait_element_present(wait, page.admin_products.product_lines))

        assert browser.find_elements(*page.admin_products.product_line_name
                                     )[0].text == self.product_name

        assert filtered_products_quantity != all_products_quantity

        page.admin_products.clear_filter()

        assert len(browser.find_elements(
            *page.admin_products.product_lines)) == all_products_quantity
        assert "ERROR" not in str(browser.get_log("browser"))

    @allure.testcase(page.common.test_case_url + 'test_case_id',
                     'Наименование тест-кейса')
    @allure.title(
        " Проверка - нельзя сохранить новый продукт без имени, тега, модели ")
    def test_save_new_product_without_mandatory_fields(self, browser, wait):
        """ Проверка - нельзя сохранить новый продукт без имени, тега, модели """

        page = PageContainer(browser)
        page.tests_logger.info(
            'test_save_new_product_without_mandatory_fields')

        page.admin.go_to_admin_login_page()

        page.admin.login_to_admin()
        page.common.close_security_alert()
        page.admin_products.go_to_products_page(wait)

        page.admin_products.open_product_form_for_add()
        page.admin_products.save_product_form()

        assert len(browser.find_elements(*page.admin_products.error_text)) == 3
        assert len(
            page.common.wait_element_present(
                wait, page.admin_products.false_alert)) > 0
        assert "ERROR" not in str(browser.get_log("browser"))