diff --git a/locators/exercises_ru_words_family_page_locators.py b/locators/exercises_ru_words_family_page_locators.py index db8e80e9da..5b4502c747 100644 --- a/locators/exercises_ru_words_family_page_locators.py +++ b/locators/exercises_ru_words_family_page_locators.py @@ -8,3 +8,4 @@ class ExercisesRuWordsFamilyPageLocators: PAGE_SECOND_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*") PAGE_THIRD_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*") PAGE_FOURTH_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*/*") + PAGE_FIFTH_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*/*/*") diff --git a/pages/exercises_ru_words_family_page.py b/pages/exercises_ru_words_family_page.py index 901d87133b..2cf85848f3 100644 --- a/pages/exercises_ru_words_family_page.py +++ b/pages/exercises_ru_words_family_page.py @@ -1,5 +1,6 @@ """Methods for verifying web elements on the exercises subgroup "Family" page in the series "Words" on the "ru" local""" + import allure from pages.base_page import BasePage from locators.exercises_ru_words_family_page_locators import ExercisesRuWordsFamilyPageLocators @@ -43,7 +44,15 @@ def check_elements_visibility_on_3rd_level(self): @allure.step("Get structure of the 4th level of nesting on the page") def get_structure_of_4th_level(self): - elements = self.elements_are_present(self.locators.PAGE_FOURTH_LEVEL_ELEMENTS) + return self.elements_are_present(self.locators.PAGE_FOURTH_LEVEL_ELEMENTS) + + @allure.step("Check if elements of the 4th level of nesting are visible") + def check_elements_visibility_on_4th_level(self): + return all(element.is_displayed() for element in self.get_structure_of_4th_level()) + + @allure.step("Get structure of the 5th level of nesting on the page") + def get_structure_of_5th_level(self): + elements = self.elements_are_present(self.locators.PAGE_FIFTH_LEVEL_ELEMENTS) tags = [element.tag_name for element in elements] print(*tags, sep='\n') return elements diff --git a/tests/exercises_ru_words_family_page_test.py b/tests/exercises_ru_words_family_page_test.py index f29eebe2ac..0371aad34a 100644 --- a/tests/exercises_ru_words_family_page_test.py +++ b/tests/exercises_ru_words_family_page_test.py @@ -15,7 +15,7 @@ def test_erwf_01_01_verify_page_presence_and_visibility(self, driver, exercises_ 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-4th levels of nesting on the page") + @allure.title("Verify composition, visibility of elements on the 1st-5th levels of nesting on the page") def test_erwf_01_02_verify_page_structure_and_visibility(self, driver, exercises_ru_words_family_page_open): page = erwfPage(driver) structure_of_1st_level = page.get_structure_of_1st_level() @@ -25,6 +25,7 @@ def test_erwf_01_02_verify_page_structure_and_visibility(self, driver, exercises structure_of_3rd_level = page.get_structure_of_3rd_level() visibility_of_elements_on_3rd_level = page.check_elements_visibility_on_3rd_level() structure_of_4th_level = page.get_structure_of_4th_level() + structure_of_5th_level = page.get_structure_of_5th_level() assert structure_of_1st_level, "The page is empty" assert visibility_of_elements_on_1st_level, "1th-level elements are invisible" assert structure_of_2nd_level, "Elements on the 2nd level are absent on the page" @@ -32,3 +33,4 @@ def test_erwf_01_02_verify_page_structure_and_visibility(self, driver, exercises assert structure_of_3rd_level, "Elements on the 3rd level are absent on the page" assert visibility_of_elements_on_3rd_level, "3rd-level elements are invisible" assert structure_of_4th_level, "Elements on the 4th level are absent on the page" + assert structure_of_5th_level, "Elements on the 5th level are absent on the page"