mokr.utils

Submodules

Functions

get_ws_endpoint(→ str)

Get the websocket URL for the remote browser at url.

add_event_listener(→ dict[str, Any])

Add an event handler to an emitter for a given event_name.

format_javascript_exception(→ str)

Get and format a JavaScript exception message.

is_javascript_method(→ bool)

Casually check if string is a JavaScript method.

release_remote_object(→ Awaitable)

Release a given remote_object so that it is no longer referenced

remove_event_listeners(→ None)

Remove all event listeners given from their emitters.

serialize_remote_object(→ Any)

Transform a remote JavaScript object's "value" to a Python equivalent.

Package Contents

mokr.utils.get_ws_endpoint(url) str

Get the websocket URL for the remote browser at url.

Parameters:

url (_type_) – Remote browser URL.

Raises:

BrowserError – Raised if browser closes while trying to resolve.

Returns:

Websocket URL from <url>/json/version response.

Return type:

str

mokr.utils.add_event_listener(emitter: pyee.EventEmitter, event_name: str, handler: Callable) dict[str, Any]

Add an event handler to an emitter for a given event_name.

Parameters:
  • emitter (EventEmitter) – Emitter to listen on.

  • event_name (str) – Event name to listen for.

  • handler (Callable) – Handler callback to run when event is emitted.

Returns:

A dictionary representation of the listener.

Return type:

dict[str, Any]

mokr.utils.format_javascript_exception(exception_details: dict) str

Get and format a JavaScript exception message.

Parameters:

exception_details (dict) – An “exceptionDetails” object loaded as a dictionary.

Returns:

Formatted exception as string.

Return type:

str

mokr.utils.is_javascript_method(method: str) bool

Casually check if string is a JavaScript method.

Parameters:

method (str) – String to check.

Returns:

True if deemed to be a method, else False.

Return type:

bool

mokr.utils.release_remote_object(client: mokr.connection.DevtoolsConnection, remote_object: dict) Awaitable

Release a given remote_object so that it is no longer referenced by the browser and can be garbage collected.

Ignores all exceptions raised when sending request to devtools session.

Parameters:
  • client (DevtoolsConnection) – A mokr.connection.DevtoolsConnection.

  • remote_object (dict) – A remote object as dictionary.

Returns:

Awaitable that yields None.

Return type:

Awaitable

mokr.utils.remove_event_listeners(listeners: list[dict]) None

Remove all event listeners given from their emitters.

Parameters:

listeners (list[dict]) – A list of listeners in dictionary form, as returned by mokr.utils.remote.add_event_listener.

mokr.utils.serialize_remote_object(remote_object: dict) Any

Transform a remote JavaScript object’s “value” to a Python equivalent.

Parameters:

remote_object (dict) – The remote JavaScript object to serialise.

Raises:
  • ElementHandleError – Raised if the remote_object has an “objectId”

  • (is not a primitive object) or if an unhandled case is encountered

  • when checking remote_object["unserializableValue"].

Returns:

Python representation of remote object. May be str, int, dict,

list, etc. Some remote_object["unserializableValue"]`s will be transformed into equivalents including "Nan" to None, "-0" to 0, "Infinity" to `math.inf, and “-Infinity” to -math.inf.

Return type:

Any