import logging from contextlib import suppress import allure from ui_automation_framework.utils import logger as cl from waiting import TimeoutExpired, ALL from src.helpers.waiting_wrapper import wait from src.locators.videos_locators import VideosLocators from src.ui_elements.button_ui_element import ButtonUIElement from src.ui_elements.input_ui_element import InputUIElement from src.ui_elements.label_ui_element import LabelUIElement from src.ui_elements.list_ui_element import ListUIElement from src.pages.tracks_page import TracksPage class VideosPage(TracksPage): log = cl.Logger(logging.DEBUG) def __init__(self, driver): super().__init__(driver) self.driver = driver @property def lb_all_videos(self): return LabelUIElement(self.driver, VideosLocators.ALL_VIDEOS_LB, "All Videos Logo") @property def lb_latest_uploads(self): return LabelUIElement(self.driver, VideosLocators.LATEST_UPLOADS_LB, "Latest Uploads Logo") @property def lb_videos_alltime(self): return LabelUIElement(self.driver, VideosLocators.VIDEOS_ALLTIME, "ALLTIME Logo") @allure.step("View All videos page is visible") def all_videos_page_visible(self): with suppress(TimeoutExpired): return wait(ALL([self.lb_all_videos.is_visible, self.lb_videos_alltime.is_visible])) return False @allure.step("Latest Uploads videos page is visible") def latest_uploads_videos_page_visible(self): with suppress(TimeoutExpired): return wait(ALL([self.lb_latest_uploads.is_visible, self.lb_videos_alltime.is_visible])) return False