From b24297f6d25b8c1267cd733b1ce25d96ff2acb6a Mon Sep 17 00:00:00 2001 From: Alena Krauch Date: Sun, 9 Feb 2025 14:23:43 +0300 Subject: [PATCH] add test_ersp_01.02 Verify page structure and visibility, update exercises_ru_similar_phrases_page_test.py, exercises_ru_similar_phrases_page.py, exercises_ru_similar_phrases_page_locators.py, conftest.py --- .../exercises_ru_similar_phrases_page_locators.py | 1 + pages/exercises_ru_similar_phrases_page.py | 11 +++++++++++ tests/conftest.py | 5 +++-- tests/exercises_ru_similar_phrases_page_test.py | 8 ++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/locators/exercises_ru_similar_phrases_page_locators.py b/locators/exercises_ru_similar_phrases_page_locators.py index c58a7d30f4..2526c3fba4 100644 --- a/locators/exercises_ru_similar_phrases_page_locators.py +++ b/locators/exercises_ru_similar_phrases_page_locators.py @@ -4,3 +4,4 @@ class ExercisesRuSimilarPhrasesPageLocators: PAGE_CONTENT = (By.TAG_NAME, "main") + PAGE_FIRST_LEVEL_ELEMENTS = (By.XPATH, "//main/*") diff --git a/pages/exercises_ru_similar_phrases_page.py b/pages/exercises_ru_similar_phrases_page.py index e0605f38f9..12e54888a3 100644 --- a/pages/exercises_ru_similar_phrases_page.py +++ b/pages/exercises_ru_similar_phrases_page.py @@ -15,3 +15,14 @@ def check_presence_of_page_content(self): @allure.step("Check if page content is visible on the page") def check_visibility_of_page_content(self): return self.element_is_visible(self.locators.PAGE_CONTENT) + + @allure.step("Get structure of the 1st level of nesting on the page") + def get_structure_of_1st_level(self): + elements = self.elements_are_present(self.locators.PAGE_FIRST_LEVEL_ELEMENTS) + tags = [element.tag_name for element in elements] + print(*tags) + return elements + + @allure.step("Check if elements of the 1st level of nesting are visible") + def check_elements_visibility_on_1st_level(self): + return all(element.is_displayed() for element in self.get_structure_of_1st_level()) diff --git a/tests/conftest.py b/tests/conftest.py index a9242420d8..b65d0fa6a3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,14 +5,15 @@ import pytest from dotenv import load_dotenv -from locators.groups_page_locators import GroupsPageLocators from locators.header_page_locators import HeaderUnauthorizedLocators from locators.login_page_locators import LoginPageLocators from locators.main_page_locators import MainPageLocators from locators.start_unauthorized_page_locators import StartUnauthorizedPageLocators from pages.base_page import BasePage +from pages.groups_page import GroupsPage from pages.profile_page import ProfilePage + from test_data.links import MainPageLinks, ExercisesUrls load_dotenv() @@ -48,7 +49,7 @@ def description_page_open(driver): @pytest.fixture() @allure.step(f'Open page: {ExercisesUrls.STARTING_POINT}') def exercises_ru_page_open(driver, auto_test_user_authorized): - page = BasePage(driver) + page = GroupsPage(driver) page.element_is_present_and_clickable(HeaderUnauthorizedLocators.RU_BUTTON).click() diff --git a/tests/exercises_ru_similar_phrases_page_test.py b/tests/exercises_ru_similar_phrases_page_test.py index be595a4915..d60225c5bd 100644 --- a/tests/exercises_ru_similar_phrases_page_test.py +++ b/tests/exercises_ru_similar_phrases_page_test.py @@ -13,3 +13,11 @@ def test_ersp_01_01_verify_page_presence_and_visibility(self, driver, exercises_ page_content_visibility = page.check_visibility_of_page_content() assert page_content_presence, "The page content is absent in DOM" assert page_content_visibility, "The page content is invisible" + + @allure.title("Verify composition, visibility of elements on the 1st level of nesting on the page") + def test_ersp_01_02_verify_page_structure_and_visibility(self, driver, exercises_ru_similar_phrases_page_open): + page = ExercisesRuSimilarPhrasesPage(driver) + structure_of_1st_level = page.get_structure_of_1st_level() + visibility_of_elements_on_1st_level = page.check_elements_visibility_on_1st_level() + assert structure_of_1st_level, "The page is empty" + assert visibility_of_elements_on_1st_level, "1th-level elements are invisible"