from playwright.sync_api import Page from src.helpers.logger import Logger from src.locators.top_charts_page.top_charts_header import TopChartsLocators from src.pages.apollo_header_main import ApolloHeader from src.ui_elements.base_ui_element import BaseUIElement class TopChartsPage(ApolloHeader): log = Logger() def __init__(self, page: Page): super().__init__(page) self.page = page self.entity_type = 'top-charts' self.url = f'/{self.entity_type}' self.page_title = BaseUIElement(self.page, TopChartsLocators.CHARTS_TITLE, 'Top Charts Page - page title') self.amazon_tab = BaseUIElement(self.page, TopChartsLocators.CHARTS_AMAZON_TOP_TRACKS_TAB, 'Top Charts Page - Amazon tab') self.shazam_tab = BaseUIElement(self.page, TopChartsLocators.CHARTS_SHAZAM_TOP_200_TAB, 'Top Charts Page - Shazam tab') self.trending_tab = BaseUIElement(self.page, TopChartsLocators.CHARTS_TRENDING_MUSIC_VIDEOS_TAB, 'Top Charts Page - Trending tab') self.apple_tab = BaseUIElement(self.page, TopChartsLocators.CHARTS_APPLE_TOP_100_TAB, 'Top Charts Page - Apple tab') self.spotify_tab = BaseUIElement(self.page, TopChartsLocators.CHARTS_SPOTIFY_TOP_200_TAB, 'Top Charts Page - Spotify tab') self.amazon_icon = BaseUIElement(self.page, TopChartsLocators.AMAZON_ICON, 'Top Charts Page - Amazon icon') self.shazam_icon = BaseUIElement(self.page, TopChartsLocators.SHAZAM_ICON, 'Top Charts Page - Shazam icon') self.trending_icon = BaseUIElement(self.page, TopChartsLocators.TRENDING_ICON, 'Top Charts Page - Trending icon') self.apple_icon = BaseUIElement(self.page, TopChartsLocators.APPLE_ICON, 'Top Charts Page - Apple icon') self.spotify_icon = BaseUIElement(self.page, TopChartsLocators.SPOTIFY_ICON, 'Top Charts Page - Spotify icon')