modules/browser_object_context_menu.py (21 lines of code) (raw):

import logging from typing import Union from selenium.webdriver.remote.webelement import WebElement from modules.page_base import BasePage class ContextMenu(BasePage): """ Browser Object Model (base class/parent class) for the context menus upon right clicking """ URL_TEMPLATE = "" def click_context_item( self, reference: Union[str, tuple, WebElement], labels=[] ) -> BasePage: """ Clicks the context item. """ with self.driver.context(self.driver.CONTEXT_CHROME): self.fetch(reference, labels=labels).click() return self class AboutDownloadsContextMenu(ContextMenu): """ Browser object model for the context menu for right clicking a download in About:Downloads """ def has_all_options_available(self) -> ContextMenu: """Timeout unless all items labeled downloadOption are present, else return self""" with self.driver.context(self.context_id): for elname in [ k for k, v in self.elements.items() if "downloadOption" in v["groups"] ]: logging.info(f"elname {elname}") self.element_exists(elname) return self