evaluate method
- String expression, {
- String? objectGroup,
- bool? includeCommandLineAPI,
- bool? silent,
- ExecutionContextId? contextId,
- bool? returnByValue,
- bool? generatePreview,
- bool? userGesture,
- bool? awaitPromise,
- bool? throwOnSideEffect,
- TimeDelta? timeout,
- bool? disableBreaks,
- bool? replMode,
- bool? allowUnsafeEvalBlockedByCSP,
- String? uniqueContextId,
- bool? generateWebDriverValue,
Evaluates expression on global object.
expression
Expression to evaluate.
objectGroup
Symbolic group name that can be used to release multiple objects.
includeCommandLineAPI
Determines whether Command Line API should be available during the evaluation.
silent
In silent mode exceptions thrown during evaluation are not reported and do not pause
execution. Overrides setPauseOnException
state.
contextId
Specifies in which execution context to perform evaluation. If the parameter is omitted the
evaluation will be performed in the context of the inspected page.
This is mutually exclusive with uniqueContextId
, which offers an
alternative way to identify the execution context that is more reliable
in a multi-process environment.
returnByValue
Whether the result is expected to be a JSON object that should be sent by value.
generatePreview
Whether preview should be generated for the result.
userGesture
Whether execution should be treated as initiated by user in the UI.
awaitPromise
Whether execution should await
for resulting value and return once awaited promise is
resolved.
throwOnSideEffect
Whether to throw an exception if side effect cannot be ruled out during evaluation.
This implies disableBreaks
below.
timeout
Terminate execution after timing out (number of milliseconds).
disableBreaks
Disable breakpoints during execution.
replMode
Setting this flag to true enables let
re-declaration and top-level await
.
Note that let
variables can only be re-declared if they originate from
replMode
themselves.
allowUnsafeEvalBlockedByCSP
The Content Security Policy (CSP) for the target might block 'unsafe-eval'
which includes eval(), Function(), setTimeout() and setInterval()
when called with non-callable arguments. This flag bypasses CSP for this
evaluation and allows unsafe-eval. Defaults to true.
uniqueContextId
An alternative way to specify the execution context to evaluate in.
Compared to contextId that may be reused across processes, this is guaranteed to be
system-unique, so it can be used to prevent accidental evaluation of the expression
in context different than intended (e.g. as a result of navigation across process
boundaries).
This is mutually exclusive with contextId
.
generateWebDriverValue
Whether the result should be serialized according to https://w3c.github.io/webdriver-bidi.
Implementation
Future<EvaluateResult> evaluate(String expression,
{String? objectGroup,
bool? includeCommandLineAPI,
bool? silent,
ExecutionContextId? contextId,
bool? returnByValue,
bool? generatePreview,
bool? userGesture,
bool? awaitPromise,
bool? throwOnSideEffect,
TimeDelta? timeout,
bool? disableBreaks,
bool? replMode,
bool? allowUnsafeEvalBlockedByCSP,
String? uniqueContextId,
bool? generateWebDriverValue}) async {
var result = await _client.send('Runtime.evaluate', {
'expression': expression,
if (objectGroup != null) 'objectGroup': objectGroup,
if (includeCommandLineAPI != null)
'includeCommandLineAPI': includeCommandLineAPI,
if (silent != null) 'silent': silent,
if (contextId != null) 'contextId': contextId,
if (returnByValue != null) 'returnByValue': returnByValue,
if (generatePreview != null) 'generatePreview': generatePreview,
if (userGesture != null) 'userGesture': userGesture,
if (awaitPromise != null) 'awaitPromise': awaitPromise,
if (throwOnSideEffect != null) 'throwOnSideEffect': throwOnSideEffect,
if (timeout != null) 'timeout': timeout,
if (disableBreaks != null) 'disableBreaks': disableBreaks,
if (replMode != null) 'replMode': replMode,
if (allowUnsafeEvalBlockedByCSP != null)
'allowUnsafeEvalBlockedByCSP': allowUnsafeEvalBlockedByCSP,
if (uniqueContextId != null) 'uniqueContextId': uniqueContextId,
if (generateWebDriverValue != null)
'generateWebDriverValue': generateWebDriverValue,
});
return EvaluateResult.fromJson(result);
}