import logging import time from datetime import datetime, timedelta import allure from ui_automation_framework.core import BasePage, TestStatus from ui_automation_framework.utils import logger as cl class SpotifyCharts(BasePage): log = cl.Logger(logging.DEBUG) def __init__(self, driver): super().__init__(driver) self.driver = driver self.spotify_charts_page = self.get_page_locators("SpotifyCharts", "third_party/spotifycharts_elements.json") self.ts = TestStatus(self.driver) @allure.step("Spotify CHarts - get track names") def get_track_names(self): self.page_has_loaded() elements = self.get_elements(*self.locator(self.spotify_charts_page, "track_names")) names = [self.get_text(element=e) for e in elements] self.log.info("spotifycharts tracks are: {}".format(names)) return names @allure.step("Spotify CHarts - open third party") def open_weekly(self, market, date): second_date = (datetime.strptime(date, "%Y-%m-%d") - timedelta(days=7)).date() self.open_url("https://spotifycharts.com/regional/{market}/weekly/{second_date}--{date}".format(market=market, date=date, second_date=second_date)) self.page_has_loaded() @allure.step("open third party - get displayed blue dots") def get_displayed_blue_dots(self): self.page_has_loaded() time.sleep(2) elements = self.get_elements(*self.locator(self.spotify_charts_page, "blue_dots")) return elements def open_daily(self, date, market): self.open_url("https://spotifycharts.com/regional/{market}/daily/{date}".format(market=market, date=date)) self.page_has_loaded()