from allure_commons._allure import step from playwright.sync_api import Page from src.helpers.logger import Logger from src.locators.apollo_header.apollo_header import ApolloHeaderLocators from src.ui_elements.base_ui_element import BaseUIElement class ApolloHeader: log = Logger() def __init__(self, page: Page): self.page = page self.entity_type = '' self.url = f'/{self.entity_type}' self.market_switcher = BaseUIElement(self.page, ApolloHeaderLocators.HEADER_MARKET_SWITCHER, 'Header - Market switcher') self.market_switcher_market = BaseUIElement(self.page, ApolloHeaderLocators.HEADER_MARKET_SWITCHER_MARKET, 'Header - Market switcher market') self.global_search_input = BaseUIElement(self.page, ApolloHeaderLocators.GLOBAL_SEARCH_INPUT, 'Header - Market switcher') self.logo = BaseUIElement(self.page, ApolloHeaderLocators.LOGO, 'Header - Market switcher') self.data_failed_to_load = BaseUIElement(self.page, ApolloHeaderLocators.DATA_FAILED_TO_LOAD, 'Page - Data failed to load') self.data_failed_to_load_popup = BaseUIElement(self.page, ApolloHeaderLocators.DATA_FAILED_TO_LOAD_REOPEN_POPUP, 'Page - Data failed to load popup') self.no_data_available = BaseUIElement(self.page, ApolloHeaderLocators.NO_DATA_AVAILABLE, 'Page - no data available') self.no_results_to_show = BaseUIElement(self.page, ApolloHeaderLocators.NO_RESULTS_TO_SHOW, 'Page - no results to show') self.skeletons = BaseUIElement(self.page, ApolloHeaderLocators.SKELETENS, 'Page - skeletons') @step("Apollo Header - is loaded") def is_loaded(self): self.logo.exists() @step("Apollo Header - select market - {market}") def select_market(self, market): self.market_switcher.click() self.market_switcher_market.get_by(market).click()