module providing event firing and listening - additional functionalities compared to sample implementation
AbstractEventListenerExtended(events_include_list: list[str] = [], events_exclude_list: list[str] = [], events_generic_list: list[str] = [])
AbstractEventListenerExtended - extended abstract base class AbstractEventListener for event listener
Extensions
- filter mechanism for events to be captured (or not)
- utilities for event handlers
- additional events
- infrastructure for handling generic events
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __init__(
self,
events_include_list: list[str] = [],
events_exclude_list: list[str] = [],
events_generic_list: list[str] = []
):
self.events_include: list[str] = events_include_list
self.events_exclude: list[str] = events_exclude_list
self.events_generic: list[str] = events_generic_list
events_exclude: list[str] = events_exclude_list instance-attribute property writable
events_generic: list[str] = events_generic_list instance-attribute property writable
events_include: list[str] = events_include_list instance-attribute property writable
after_alerthandler(mode: str, driver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_alerthandler(self, mode: str, driver) -> None:
pass
after_closepopuphandler(mode: str, driver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_closepopuphandler(self, mode: str, driver) -> None:
pass
after_cookiemanager(mode: str, cookiekey: str, driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_cookiemanager(self, mode: str, cookiekey: str, driver: _WebDriver) -> None:
pass
after_refresh(driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_refresh(self, driver: _WebDriver) -> None:
pass
after_request(method: str, url: str, driver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_request(self, method: str, url: str, driver) -> None:
pass
after_start_session(driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_start_session(self, driver: _WebDriver) -> None:
pass
after_submit(element, driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_submit(self, element, driver: _WebDriver) -> None:
pass
after_switch_to(objtyp, value: Any, driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def after_switch_to(self, objtyp, value: Any, driver: _WebDriver) -> None:
pass
before_alerthandler(mode: str, driver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_alerthandler(self, mode: str, driver) -> None:
pass
before_closepopuphandler(mode: str, driver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_closepopuphandler(self, mode: str, driver) -> None:
pass
before_cookiemanager(mode: str, cookiekey: str, driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_cookiemanager(self, mode: str, cookiekey: str, driver: _WebDriver) -> None:
pass
before_refresh(driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_refresh(self, driver: _WebDriver) -> None:
pass
before_request(method: str, url: str, driver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_request(self, method: str, url: str, driver) -> None:
pass
before_start_session(driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_start_session(self, driver: _WebDriver) -> None:
pass
before_submit(element, driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_submit(self, element, driver: _WebDriver) -> None:
pass
before_switch_to(objtyp, value: Any, driver: _WebDriver) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def before_switch_to(self, objtyp, value: Any, driver: _WebDriver) -> None:
pass
checkevent(event_name: str) -> bool
Source code in src/utils_seleniumxp/eventfiring_addon.py
def checkevent(self, event_name: str) -> bool:
return (
(event_name in self._events_include or self._events_include == []) and
(event_name not in self._events_exclude)
)
checkgeneric(event_name: str) -> bool
Source code in src/utils_seleniumxp/eventfiring_addon.py
def checkgeneric(self, event_name: str) -> bool:
return event_name in self._events_generic
generic_listener(event_name: str, *args, **kwargs)
Source code in src/utils_seleniumxp/eventfiring_addon.py
def generic_listener(self, event_name: str, *args, **kwargs):
pass
generic_listener_name()
Source code in src/utils_seleniumxp/eventfiring_addon.py
def generic_listener_name(self):
return self.generic_listener.__name__
EventFiringAlert(alert: _Alert, ef_driver: EventFiringWebDriverExtended)
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __init__(self, alert: _Alert, ef_driver: EventFiringWebDriverExtended):
self._alert = alert
self._ef_driver = ef_driver
self._driver = ef_driver.wrapped_driver
self._listener = ef_driver._listener
self._dispatcherobject = self._alert
self._wrapperobject = self._ef_driver
wrapped_element: _Alert property
__getattr__(name: str) -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __getattr__(self, name: str) -> Any:
return _getattr(self, name)
accept() -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def accept(self) -> None:
self._dispatch("alerthandler", ("accept", self._driver), "accept", ())
dismiss() -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def dismiss(self) -> None:
self._dispatch("alerthandler", ("dismiss", self._driver), "dismiss", ())
send_keys(keysToSend: str) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def send_keys(self, keysToSend: str) -> None:
self._dispatch("alerthandler", (f"sendkeys '{keysToSend}'", self._driver), "send_keys", (keysToSend,))
EventFiringSwitchTo(switch_to: _SwitchTo, ef_driver: EventFiringWebDriverExtended)
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __init__(self, switch_to: _SwitchTo, ef_driver: EventFiringWebDriverExtended):
self._switch_to = switch_to
self._ef_driver = ef_driver
self._driver = ef_driver.wrapped_driver
self._listener = ef_driver._listener
self._dispatcherobject = self._switch_to
self._wrapperobject = self._ef_driver
wrapped_element: _SwitchTo property
__getattr__(name: str) -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __getattr__(self, name: str) -> Any:
return _getattr(self, name)
active_element() -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def active_element(self) -> Any:
return self._dispatch(None, (), "active_element", ())
alert() -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def alert(self) -> Any:
return self._dispatch(None, (), "alert", ())
default_content() -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def default_content(self) -> None:
self._dispatch("switch_to", ("default", "", self._driver), "default_content", ())
frame(frame_reference: Any) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def frame(self, frame_reference: Any) -> None:
self._dispatch("switch_to", ("frame", frame_reference, self._driver), "frame", (frame_reference))
new_window(type_hint: str) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def new_window(self, type_hint: str) -> None:
self._dispatch("switch_to", ("new_window", type_hint, self._driver), "frame", (type_hint,))
parent_frame() -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def parent_frame(self) -> None:
self._dispatch("switch_to", ("parent_frame", "", self._driver), "parent_frame", ())
window(window_name: str)
Source code in src/utils_seleniumxp/eventfiring_addon.py
def window(self, window_name: str):
self._dispatch("switch_to", ("window", window_name, self._driver), "window", (window_name,))
EventFiringWebDriverExtended(webdriver: _WebDriver, eventlistener: AbstractEventListener)
EventFiringWebDriverExtended - extended EventFiringWebDriver class
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __init__(self, webdriver: _WebDriver, eventlistener: AbstractEventListener):
super().__init__(webdriver, eventlistener)
self._switch_to = EventFiringSwitchTo(super().wrapped_driver._switch_to, self)
self._dispatcherobject = self._driver
self._wrapperobject = self
__getattr__(name: str) -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __getattr__(self, name: str) -> Any:
# generic call of event listener (if listener object has implemented the interface)
# watch out for necessity of wrapping the call to match Callable as __getattr__ return type
# but NOT return type of method d_call
if hasattr(self._listener, f"before_{name}") and hasattr(self._listener, f"after_{name}"):
# generic call - listener provides listening method not registered separately in event-firing
# webdriver class
return _getattr_dispatch_generic(self, name, (self._driver,), name)
else:
if hasattr(self._listener, "checkgeneric") and hasattr(self._listener, "generic_listener_name"):
if self._listener.checkgeneric(name):
return _getattr_dispatch_generic(self, None, (self._driver,), name)
return _getattr(self, name)
add_cookie(cookie_dict: dict[str, Any]) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def add_cookie(self, cookie_dict: dict[str, Any]) -> None:
self._dispatch("cookiemanager", ("add", cookie_dict, self._driver), "add_cookie", (cookie_dict,))
delete_all_cookies() -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def delete_all_cookies(self) -> None:
self._dispatch("cookiemanager", ("delete", "all", self._driver), "delete_all_cookies", ())
delete_cookie(name: str) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def delete_cookie(self, name: str) -> None:
self._dispatch("cookiemanager", ("delete", name, self._driver), "delete_cookies", (name,))
get_cookie(name: str) -> dict[str, Any]
Source code in src/utils_seleniumxp/eventfiring_addon.py
def get_cookie(self, name: str) -> dict[str, Any]:
return self._dispatch("cookiemanager", ("get", name, self._driver), "get_cookie", (name,))
get_cookies() -> list[dict[str, Any]]
Source code in src/utils_seleniumxp/eventfiring_addon.py
def get_cookies(self) -> list[dict[str, Any]]:
return self._dispatch("cookiemanager", ("get", "all", self._driver), "get_cookies", ())
refresh() -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def refresh(self) -> None:
self._dispatch("refresh", (self._driver,), "refresh", ())
request(method: str, url: str, **kwargs) -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def request(self, method: str, url: str, **kwargs) -> Any:
return self._dispatch("request", (method, url, self._driver), "request", (method, url, *kwargs))
start_session(capabilities: dict[str, Any], browser_profile: Any = None) -> None
Source code in src/utils_seleniumxp/eventfiring_addon.py
def start_session(self, capabilities: dict[str, Any], browser_profile: Any = None) -> None:
self._dispatch("start_session", (self._driver,), "start_session", (capabilities, browser_profile))
EventFiringWebElementExtended(*args, **kwargs)
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._dispatcherobject = self._webelement
self._wrapperobject = self._ef_driver
__getattr__(name: str) -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def __getattr__(self, name: str) -> Any:
return _getattr(self, name)
submit() -> Any
Source code in src/utils_seleniumxp/eventfiring_addon.py
def submit(self) -> Any:
self._dispatch("submit", (self._webelement, self._driver), "submit", ())