Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions locators/exercises_ru_similar_phrases_page_locators.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ class ExercisesRuSimilarPhrasesPageLocators:
PAGE_SIXTH_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*/*/*/*")
PAGE_SEVENTH_LEVEL_ELEMENTS = (By.XPATH, "//main/*/*/*/*/*/*/*")
PAGE_LIST1 = (By.XPATH, '//ul[@aria-label="Breadcrumbs"]//a')
PAGE_LIST1_1 = (By.XPATH, '(//ul[@aria-label="Breadcrumbs"]//a)[1]')
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_LIST3 = (By.XPATH, '//div[contains(@class, "series-page")]//a')
CARD_IMAGES_LIST4 = (By.XPATH, '//div[contains(@style, "svg")]')
18 changes: 18 additions & 0 deletions pages/exercises_ru_similar_phrases_page.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"""Methods for verifying web elements on the 'Exercises "Similar phrases"' page on the 'ru' local"""
import allure
import requests
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait as Wait
from pages.base_page import BasePage
from locators.exercises_ru_similar_phrases_page_locators import ExercisesRuSimilarPhrasesPageLocators

Expand Down Expand Up @@ -164,3 +166,19 @@ def get_subgroup_links_href(self):
@allure.step("Get status code of subgroup links")
def get_subgroup_link_status_codes(self):
return [requests.head(link_href).status_code for link_href in self.get_subgroup_links_href()]

@allure.step("Click on breadcrumbs links and thereby open corresponding web pages in the same tab")
def click_on_breadcrumbs_links(self):
breadcrumbs_locators = [self.locators.PAGE_LIST1_1, self.locators.PAGE_LIST1_2, self.locators.PAGE_LIST1_3]
group_page_url = self.get_current_tab_url()
opened_pages = [self.get_current_tab_url()]

for link_locator in breadcrumbs_locators[:2]:
self.element_is_clickable(link_locator).click()
Wait(self.driver, self.timeout).until(EC.url_changes(group_page_url))
opened_pages.append(self.get_current_tab_url())
self.driver.back()
Wait(self.driver, self.timeout).until(EC.url_to_be(group_page_url))

print(*opened_pages, sep='\n')
return opened_pages
7 changes: 7 additions & 0 deletions tests/exercises_ru_similar_phrases_page_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,10 @@ def test_ersp_03_03_verify_subgroup_links(self, driver, exercises_ru_similar_phr
"Attributes 'href' of subgroup links mismatch valid values"
assert all(element in erspPD.links_status_code for element in subgroup_links_status_codes), \
"Status codes of subgroup links mismatch valid values"

@allure.title("Verify if breadcrumbs links lead to correct pages after clicking")
def test_ersp_03_04_verify_breadcrumbs_links_navigation(self, driver, exercises_ru_similar_phrases_page_open):
page = erspPage(driver)
opened_pages = page.click_on_breadcrumbs_links()
assert opened_pages, "Transitions to pages have not performed"
assert all(element in erspPD.breadcrumbs_urls for element in opened_pages), "Links lead to incorrect pages"