executeAsync method Null safety

dynamic executeAsync(
  1. String script,
  2. List args
)

Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame. The executed script is assumed to be asynchronous and must signal that is done by invoking the provided callback, which is always provided as the final argument to the function. The value to this callback will be returned to the client.

Asynchronous script commands may not span page loads. If an unload event is fired while waiting for a script result, an error will be thrown.

The script argument defines the script to execute in the form of a function body. The function will be invoked with the provided args array and the values may be accessed via the arguments object in the order specified. The final argument will always be a callback function that must be invoked to signal that the script has finished.

Arguments may be any JSON-able object. WebElements will be converted to the corresponding DOM element. Likewise, any DOM Elements in the script result will be converted to WebElements.

Implementation

dynamic executeAsync(String script, List args) => _client.send(
    _handler.core.buildExecuteAsyncRequest(script, args),
    (response) => _handler.core.parseExecuteAsyncResponse(
        response,
        (elementId) => WebElement(
            this, _client, _handler, elementId, this, 'javascript')));