25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
from ..awaitable_response import AwaitableResponse
|
|
from ..context import context
|
|
|
|
|
|
def run_javascript(code: str, *, timeout: float = 1.0) -> AwaitableResponse:
|
|
"""Run JavaScript
|
|
|
|
This function runs arbitrary JavaScript code on a page that is executed in the browser.
|
|
To access a client-side Vue component or HTML element by ID,
|
|
use the JavaScript functions `getElement()` or `getHtmlElement()` (*added in version 2.9.0*).
|
|
|
|
If the function is awaited, the result of the JavaScript code is returned.
|
|
Otherwise, the JavaScript code is executed without waiting for a response.
|
|
|
|
Obviously the JavaScript code is only executed after the client is connected.
|
|
Internally, ``await client.connected()`` is called before the JavaScript code is executed (*since version 3.0.0*).
|
|
This might delay the execution of the JavaScript code and is not covered by the ``timeout`` parameter.
|
|
|
|
:param code: JavaScript code to run
|
|
:param timeout: timeout in seconds (default: 1.0)
|
|
|
|
:return: AwaitableResponse that can be awaited to get the result of the JavaScript code
|
|
"""
|
|
return context.client.run_javascript(code, timeout=timeout)
|