From 7c539c43102fe72732b8ba3e32939f4e91bdc339 Mon Sep 17 00:00:00 2001 From: Alena Krauch Date: Sun, 2 Feb 2025 22:35:08 +0300 Subject: [PATCH] add test_ersp_01.01 Verify page presence and visibility update exercises_ru_similar_phrases_page_test.py, exercises_ru_similar_phrases_page.py, exercises_ru_similar_phrases_page_locators.py, exercises_ru_words_page_locators.py, links.py, conftest.py --- locators/exercises_ru_similar_phrases_page_locators.py | 3 ++- locators/exercises_ru_words_page_locators.py | 1 + pages/exercises_ru_similar_phrases_page.py | 10 ++++++++++ test_data/links.py | 3 +++ tests/conftest.py | 9 +++++++++ tests/exercises_ru_similar_phrases_page_test.py | 9 ++++++++- 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/locators/exercises_ru_similar_phrases_page_locators.py b/locators/exercises_ru_similar_phrases_page_locators.py index fa6e0291a6..c58a7d30f4 100644 --- a/locators/exercises_ru_similar_phrases_page_locators.py +++ b/locators/exercises_ru_similar_phrases_page_locators.py @@ -1,5 +1,6 @@ """Locators of web elements on the 'Exercises "Similar phrases"' page on the 'ru' local""" +from selenium.webdriver.common.by import By class ExercisesRuSimilarPhrasesPageLocators: - pass + PAGE_CONTENT = (By.TAG_NAME, "main") diff --git a/locators/exercises_ru_words_page_locators.py b/locators/exercises_ru_words_page_locators.py index 0a747f3651..db1bcc9a62 100644 --- a/locators/exercises_ru_words_page_locators.py +++ b/locators/exercises_ru_words_page_locators.py @@ -16,6 +16,7 @@ class ExercisesRuWordsPageLocators: PAGE_LIST1_2 = (By.XPATH, '(//ul[@aria-label="Breadcrumbs"]//a)[2]') PAGE_LIST1_3 = (By.XPATH, '(//ul[@aria-label="Breadcrumbs"]//a)[3]') PAGE_LIST2 = (By.XPATH, "//aside//button") + PAGE_LIST2_3 = (By.XPATH, "(//aside//button)[3]") PAGE_LIST3 = (By.XPATH, '//div[contains(@class, "series-page")]//a') PAGE_LIST3_1 = (By.XPATH, '(//div[contains(@class, "series-page")]//a)[1]') PAGE_LIST3_2 = (By.XPATH, '(//div[contains(@class, "series-page")]//a)[2]') diff --git a/pages/exercises_ru_similar_phrases_page.py b/pages/exercises_ru_similar_phrases_page.py index 46713c47ad..e0605f38f9 100644 --- a/pages/exercises_ru_similar_phrases_page.py +++ b/pages/exercises_ru_similar_phrases_page.py @@ -1,7 +1,17 @@ """Methods for verifying web elements on the 'Exercises "Similar phrases"' page on the 'ru' local""" +import allure from pages.base_page import BasePage from locators.exercises_ru_similar_phrases_page_locators import ExercisesRuSimilarPhrasesPageLocators class ExercisesRuSimilarPhrasesPage(BasePage): locators = ExercisesRuSimilarPhrasesPageLocators + + # Checking the structure and display of elements on the page + @allure.step("Check if some content is present in DOM") + def check_presence_of_page_content(self): + return self.element_is_present(self.locators.PAGE_CONTENT) + + @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) diff --git a/test_data/links.py b/test_data/links.py index 41e38ef76b..7aa63aa40a 100644 --- a/test_data/links.py +++ b/test_data/links.py @@ -19,6 +19,9 @@ class MainPageLinks: class ExercisesUrls: STARTING_POINT = MainPageLinks.URL_GROUPS_PAGE + # Speech Exercises RU > Words + URL_EXERCISES_RU_SIMILAR_PHRASES_PAGE = f"{STARTING_POINT}/2/series/2" + # Speech Exercises RU > Words URL_EXERCISES_RU_WORDS_PAGE = f"{STARTING_POINT}/2/series/1" diff --git a/tests/conftest.py b/tests/conftest.py index ae283744c0..0b40ae9311 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,6 +5,7 @@ import pytest from dotenv import load_dotenv +from locators.exercises_ru_words_page_locators import ExercisesRuWordsPageLocators from locators.groups_page_locators import GroupsPageLocators from locators.header_page_locators import HeaderUnauthorizedLocators from locators.login_page_locators import LoginPageLocators @@ -45,6 +46,14 @@ def description_page_open(driver): driver.get(MainPageLinks.URL_DESCRIPTION_PAGE) +@pytest.fixture() +@allure.step(f'Open page: {ExercisesUrls.URL_EXERCISES_RU_SIMILAR_PHRASES_PAGE}') +def exercises_ru_similar_phrases_page_open(driver, exercises_ru_words_page_open): + page = BasePage(driver) + page.element_is_present_and_clickable(ExercisesRuWordsPageLocators.PAGE_LIST2_3).click() + time.sleep(3) + + @pytest.fixture() @allure.step(f'Open page: {ExercisesUrls.URL_EXERCISES_RU_WORDS_PAGE}') def exercises_ru_words_page_open(driver, main_page_open): diff --git a/tests/exercises_ru_similar_phrases_page_test.py b/tests/exercises_ru_similar_phrases_page_test.py index 77caff5890..be595a4915 100644 --- a/tests/exercises_ru_similar_phrases_page_test.py +++ b/tests/exercises_ru_similar_phrases_page_test.py @@ -1,8 +1,15 @@ """Auto tests for verifying web elements on the 'Exercises "Similar phrases"' page on the 'ru' local""" import allure +from pages.exercises_ru_similar_phrases_page import ExercisesRuSimilarPhrasesPage @allure.epic("The Exercises 'Similar phrases' Page on the 'ru' local") class TestExercisesRuSimilarPhrasesPage: class TestExercisesRuSimilarPhrasesPageStructure: - pass + @allure.title("Verify presence and visibility of content on the page") + def test_ersp_01_01_verify_page_presence_and_visibility(self, driver, exercises_ru_similar_phrases_page_open): + page = ExercisesRuSimilarPhrasesPage(driver) + page_content_presence = page.check_presence_of_page_content() + 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"