Skip to content

Commit 302d642

Browse files
add test_ersp_03.04 Verify breadcrumbs links navigation
update exercises_ru_similar_phrases_page_test.py, exercises_ru_similar_phrases_page.py, exercises_ru_similar_phrases_page_locators.py #478
1 parent a84e12a commit 302d642

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

locators/exercises_ru_similar_phrases_page_locators.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ class ExercisesRuSimilarPhrasesPageLocators:
1212
PAGE_SIXTH_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*/*/*/*")
1313
PAGE_SEVENTH_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*/*/*/*/*")
1414
PAGE_LIST1 = (By.XPATH, '//ul[@aria-label="Breadcrumbs"]//a')
15+
PAGE_LIST1_1 = (By.XPATH, '(//ul[@aria-label="Breadcrumbs"]//a)[1]')
16+
PAGE_LIST1_2 = (By.XPATH, '(//ul[@aria-label="Breadcrumbs"]//a)[2]')
17+
PAGE_LIST1_3 = (By.XPATH, '(//ul[@aria-label="Breadcrumbs"]//a)[3]')
1518
PAGE_LIST2 = (By.XPATH, "//aside//button")
1619
PAGE_LIST3 = (By.XPATH, '//div[contains(@class, "series-page")]//a')
1720
CARD_IMAGES_LIST4 = (By.XPATH, '//div[contains(@style, "svg")]')

pages/exercises_ru_similar_phrases_page.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""Methods for verifying web elements on the 'Exercises "Similar phrases"' page on the 'ru' local"""
22
import allure
33
import requests
4+
from selenium.webdriver.support import expected_conditions as EC
5+
from selenium.webdriver.support.wait import WebDriverWait as Wait
46
from pages.base_page import BasePage
57
from locators.exercises_ru_similar_phrases_page_locators import ExercisesRuSimilarPhrasesPageLocators
68

@@ -164,3 +166,19 @@ def get_subgroup_links_href(self):
164166
@allure.step("Get status code of subgroup links")
165167
def get_subgroup_link_status_codes(self):
166168
return [requests.head(link_href).status_code for link_href in self.get_subgroup_links_href()]
169+
170+
@allure.step("Click on breadcrumbs links and thereby open corresponding web pages in the same tab")
171+
def click_on_breadcrumbs_links(self):
172+
breadcrumbs_locators = [self.locators.PAGE_LIST1_1, self.locators.PAGE_LIST1_2, self.locators.PAGE_LIST1_3]
173+
group_page_url = self.get_current_tab_url()
174+
opened_pages = [self.get_current_tab_url()]
175+
176+
for link_locator in breadcrumbs_locators[:2]:
177+
self.element_is_clickable(link_locator).click()
178+
Wait(self.driver, self.timeout).until(EC.url_changes(group_page_url))
179+
opened_pages.append(self.get_current_tab_url())
180+
self.driver.back()
181+
Wait(self.driver, self.timeout).until(EC.url_to_be(group_page_url))
182+
183+
print(*opened_pages, sep='\n')
184+
return opened_pages

tests/exercises_ru_similar_phrases_page_test.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,10 @@ def test_ersp_03_03_verify_subgroup_links(self, driver, exercises_ru_similar_phr
137137
"Attributes 'href' of subgroup links mismatch valid values"
138138
assert all(element in erspPD.links_status_code for element in subgroup_links_status_codes), \
139139
"Status codes of subgroup links mismatch valid values"
140+
141+
@allure.title("Verify if breadcrumbs links lead to correct pages after clicking")
142+
def test_ersp_03_04_verify_breadcrumbs_links_navigation(self, driver, exercises_ru_similar_phrases_page_open):
143+
page = erspPage(driver)
144+
opened_pages = page.click_on_breadcrumbs_links()
145+
assert opened_pages, "Transitions to pages have not performed"
146+
assert all(element in erspPD.breadcrumbs_urls for element in opened_pages), "Links lead to incorrect pages"

0 commit comments

Comments
 (0)