# frozen_string_literal: true
# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# This file is automatically generated. DO NOT EDIT!
# Regenerate with: bazel run //rb/lib/selenium/webdriver:bidi-generate
module Selenium
module WebDriver
class BiDi
module Protocol
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class Script < Domain
EVENTS = {
message: 'script.message',
realm_created: 'script.realmCreated',
realm_destroyed: 'script.realmDestroyed'
}.freeze
SPECIAL_NUMBER = {
na_n: 'NaN',
neg0: '-0',
infinity: 'Infinity',
neg_infinity: '-Infinity'
}.freeze
REALM_TYPE = {
window: 'window',
dedicated_worker: 'dedicated-worker',
shared_worker: 'shared-worker',
service_worker: 'service-worker',
worker: 'worker',
paint_worklet: 'paint-worklet',
audio_worklet: 'audio-worklet',
worklet: 'worklet'
}.freeze
RESULT_OWNERSHIP = {
root: 'root',
none: 'none'
}.freeze
NODE_PROPERTIES_MODE = {
open: 'open',
closed: 'closed'
}.freeze
SERIALIZATION_OPTIONS_INCLUDE_SHADOW_TREE = {
none: 'none',
open: 'open',
all: 'all'
}.freeze
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ChannelValue = Serialization::Record.define(
type: {fixed: 'channel'},
value: {wire_key: 'value', ref: 'Script::ChannelProperties'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ChannelProperties = Serialization::Record.define(
channel: 'channel',
serialization_options: {
wire_key: 'serializationOptions',
required: false,
ref: 'Script::SerializationOptions'
},
ownership: {wire_key: 'ownership', required: false, enum: 'Script::RESULT_OWNERSHIP'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class EvaluateResult < Serialization::Union
discriminator 'type', {success: 'success', exception: 'exception'}
variants(
success: 'Script::EvaluateResultSuccess',
exception: 'Script::EvaluateResultException'
)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
EvaluateResultSuccess = Serialization::Record.define(
type: {fixed: 'success'},
result: {wire_key: 'result', ref: 'Script::RemoteValue'},
realm: 'realm'
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
EvaluateResultException = Serialization::Record.define(
type: {fixed: 'exception'},
exception_details: {wire_key: 'exceptionDetails', ref: 'Script::ExceptionDetails'},
realm: 'realm'
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ExceptionDetails = Serialization::Record.define(
column_number: 'columnNumber',
exception: {wire_key: 'exception', ref: 'Script::RemoteValue'},
line_number: 'lineNumber',
stack_trace: {wire_key: 'stackTrace', ref: 'Script::StackTrace'},
text: {wire_key: 'text', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class LocalValue < Serialization::Union
discriminator 'type', {
undefined: 'undefined',
null: 'null',
string: 'string',
number: 'number',
boolean: 'boolean',
bigint: 'bigint',
channel: 'channel',
array: 'array',
date: 'date',
map: 'map',
object: 'object',
regexp: 'regexp',
set: 'set'
}
variants(
undefined: 'Script::UndefinedValue',
null: 'Script::NullValue',
string: 'Script::StringValue',
number: 'Script::NumberValue',
boolean: 'Script::BooleanValue',
bigint: 'Script::BigIntValue',
channel: 'Script::ChannelValue',
array: 'Script::ArrayLocalValue',
date: 'Script::DateLocalValue',
map: 'Script::MapLocalValue',
object: 'Script::ObjectLocalValue',
regexp: 'Script::RegExpLocalValue',
set: 'Script::SetLocalValue'
)
fallback 'Script::RemoteReference'
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ArrayLocalValue = Serialization::Record.define(
type: {fixed: 'array'},
value: {wire_key: 'value', ref: 'Script::LocalValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
DateLocalValue = Serialization::Record.define(
type: {fixed: 'date'},
value: {wire_key: 'value', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
MapLocalValue = Serialization::Record.define(
type: {fixed: 'map'},
value: {wire_key: 'value', ref: 'Script::LocalValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ObjectLocalValue = Serialization::Record.define(
type: {fixed: 'object'},
value: {wire_key: 'value', ref: 'Script::LocalValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RegExpValue = Serialization::Record.define(
pattern: {wire_key: 'pattern', primitive: 'string'},
flags: {wire_key: 'flags', required: false, primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RegExpLocalValue = Serialization::Record.define(
type: {fixed: 'regexp'},
value: {wire_key: 'value', ref: 'Script::RegExpValue'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
SetLocalValue = Serialization::Record.define(
type: {fixed: 'set'},
value: {wire_key: 'value', ref: 'Script::LocalValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class PrimitiveProtocolValue < Serialization::Union
discriminator 'type', {
undefined: 'undefined',
null: 'null',
string: 'string',
number: 'number',
boolean: 'boolean',
bigint: 'bigint'
}
variants(
undefined: 'Script::UndefinedValue',
null: 'Script::NullValue',
string: 'Script::StringValue',
number: 'Script::NumberValue',
boolean: 'Script::BooleanValue',
bigint: 'Script::BigIntValue'
)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
UndefinedValue = Serialization::Record.define(type: {fixed: 'undefined'})
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
NullValue = Serialization::Record.define(type: {fixed: 'null'})
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
StringValue = Serialization::Record.define(
type: {fixed: 'string'},
value: {wire_key: 'value', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
NumberValue = Serialization::Record.define(type: {fixed: 'number'}, value: 'value')
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
BooleanValue = Serialization::Record.define(
type: {fixed: 'boolean'},
value: {wire_key: 'value', primitive: 'boolean'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
BigIntValue = Serialization::Record.define(
type: {fixed: 'bigint'},
value: {wire_key: 'value', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class RealmInfo < Serialization::Union
discriminator 'type', {
window: 'window',
dedicated_worker: 'dedicated-worker',
shared_worker: 'shared-worker',
service_worker: 'service-worker',
worker: 'worker',
paint_worklet: 'paint-worklet',
audio_worklet: 'audio-worklet',
worklet: 'worklet'
}
variants(
window: 'Script::WindowRealmInfo',
dedicated_worker: 'Script::DedicatedWorkerRealmInfo',
shared_worker: 'Script::SharedWorkerRealmInfo',
service_worker: 'Script::ServiceWorkerRealmInfo',
worker: 'Script::WorkerRealmInfo',
paint_worklet: 'Script::PaintWorkletRealmInfo',
audio_worklet: 'Script::AudioWorkletRealmInfo',
worklet: 'Script::WorkletRealmInfo'
)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
BaseRealmInfo = Serialization::Record.define(
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WindowRealmInfo = Serialization::Record.define(
type: {fixed: 'window'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'},
context: 'context',
user_context: {wire_key: 'userContext', required: false},
sandbox: {wire_key: 'sandbox', required: false, primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
DedicatedWorkerRealmInfo = Serialization::Record.define(
type: {fixed: 'dedicated-worker'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'},
owners: {wire_key: 'owners', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
SharedWorkerRealmInfo = Serialization::Record.define(
type: {fixed: 'shared-worker'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ServiceWorkerRealmInfo = Serialization::Record.define(
type: {fixed: 'service-worker'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WorkerRealmInfo = Serialization::Record.define(
type: {fixed: 'worker'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
PaintWorkletRealmInfo = Serialization::Record.define(
type: {fixed: 'paint-worklet'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
AudioWorkletRealmInfo = Serialization::Record.define(
type: {fixed: 'audio-worklet'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WorkletRealmInfo = Serialization::Record.define(
type: {fixed: 'worklet'},
realm: 'realm',
origin: {wire_key: 'origin', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class RemoteReference < Serialization::Union
presence(
'Script::SharedReference' => ['sharedId'],
'Script::RemoteObjectReference' => ['handle']
)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
SharedReference = Serialization::Record.define(
shared_id: 'sharedId',
handle: {wire_key: 'handle', required: false},
extensible: true
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RemoteObjectReference = Serialization::Record.define(
handle: 'handle',
shared_id: {wire_key: 'sharedId', required: false},
extensible: true
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class RemoteValue < Serialization::Union
discriminator 'type', {
undefined: 'undefined',
null: 'null',
string: 'string',
number: 'number',
boolean: 'boolean',
bigint: 'bigint',
symbol: 'symbol',
array: 'array',
object: 'object',
function: 'function',
regexp: 'regexp',
date: 'date',
map: 'map',
set: 'set',
weakmap: 'weakmap',
weakset: 'weakset',
generator: 'generator',
error: 'error',
proxy: 'proxy',
promise: 'promise',
typedarray: 'typedarray',
arraybuffer: 'arraybuffer',
nodelist: 'nodelist',
htmlcollection: 'htmlcollection',
node: 'node',
window: 'window'
}
variants(
undefined: 'Script::UndefinedValue',
null: 'Script::NullValue',
string: 'Script::StringValue',
number: 'Script::NumberValue',
boolean: 'Script::BooleanValue',
bigint: 'Script::BigIntValue',
symbol: 'Script::SymbolRemoteValue',
array: 'Script::ArrayRemoteValue',
object: 'Script::ObjectRemoteValue',
function: 'Script::FunctionRemoteValue',
regexp: 'Script::RegExpRemoteValue',
date: 'Script::DateRemoteValue',
map: 'Script::MapRemoteValue',
set: 'Script::SetRemoteValue',
weakmap: 'Script::WeakMapRemoteValue',
weakset: 'Script::WeakSetRemoteValue',
generator: 'Script::GeneratorRemoteValue',
error: 'Script::ErrorRemoteValue',
proxy: 'Script::ProxyRemoteValue',
promise: 'Script::PromiseRemoteValue',
typedarray: 'Script::TypedArrayRemoteValue',
arraybuffer: 'Script::ArrayBufferRemoteValue',
nodelist: 'Script::NodeListRemoteValue',
htmlcollection: 'Script::HTMLCollectionRemoteValue',
node: 'Script::NodeRemoteValue',
window: 'Script::WindowProxyRemoteValue'
)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
SymbolRemoteValue = Serialization::Record.define(
type: {fixed: 'symbol'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ArrayRemoteValue = Serialization::Record.define(
type: {fixed: 'array'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::RemoteValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ObjectRemoteValue = Serialization::Record.define(
type: {fixed: 'object'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::RemoteValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
FunctionRemoteValue = Serialization::Record.define(
type: {fixed: 'function'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RegExpRemoteValue = Serialization::Record.define(
type: {fixed: 'regexp'},
value: {wire_key: 'value', ref: 'Script::RegExpValue'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
DateRemoteValue = Serialization::Record.define(
type: {fixed: 'date'},
value: {wire_key: 'value', primitive: 'string'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
MapRemoteValue = Serialization::Record.define(
type: {fixed: 'map'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::RemoteValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
SetRemoteValue = Serialization::Record.define(
type: {fixed: 'set'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::RemoteValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WeakMapRemoteValue = Serialization::Record.define(
type: {fixed: 'weakmap'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WeakSetRemoteValue = Serialization::Record.define(
type: {fixed: 'weakset'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
GeneratorRemoteValue = Serialization::Record.define(
type: {fixed: 'generator'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ErrorRemoteValue = Serialization::Record.define(
type: {fixed: 'error'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ProxyRemoteValue = Serialization::Record.define(
type: {fixed: 'proxy'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
PromiseRemoteValue = Serialization::Record.define(
type: {fixed: 'promise'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
TypedArrayRemoteValue = Serialization::Record.define(
type: {fixed: 'typedarray'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ArrayBufferRemoteValue = Serialization::Record.define(
type: {fixed: 'arraybuffer'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
NodeListRemoteValue = Serialization::Record.define(
type: {fixed: 'nodelist'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::RemoteValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
HTMLCollectionRemoteValue = Serialization::Record.define(
type: {fixed: 'htmlcollection'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::RemoteValue', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
NodeRemoteValue = Serialization::Record.define(
type: {fixed: 'node'},
shared_id: {wire_key: 'sharedId', required: false},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false},
value: {wire_key: 'value', required: false, ref: 'Script::NodeProperties'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
NodeProperties = Serialization::Record.define(
node_type: 'nodeType',
child_node_count: 'childNodeCount',
attributes: {wire_key: 'attributes', required: false},
children: {wire_key: 'children', required: false, ref: 'Script::NodeRemoteValue', list: true},
local_name: {wire_key: 'localName', required: false, primitive: 'string'},
mode: {wire_key: 'mode', required: false, enum: 'Script::NODE_PROPERTIES_MODE'},
namespace_uri: {wire_key: 'namespaceURI', required: false, primitive: 'string'},
node_value: {wire_key: 'nodeValue', required: false, primitive: 'string'},
shadow_root: {wire_key: 'shadowRoot', required: false, nullable: true, ref: 'Script::NodeRemoteValue'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WindowProxyRemoteValue = Serialization::Record.define(
type: {fixed: 'window'},
value: {wire_key: 'value', ref: 'Script::WindowProxyProperties'},
handle: {wire_key: 'handle', required: false},
internal_id: {wire_key: 'internalId', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
WindowProxyProperties = Serialization::Record.define(context: 'context')
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
SerializationOptions = Serialization::Record.define(
max_dom_depth: {wire_key: 'maxDomDepth', required: false, nullable: true},
max_object_depth: {wire_key: 'maxObjectDepth', required: false, nullable: true},
include_shadow_tree: {
wire_key: 'includeShadowTree',
required: false,
enum: 'Script::SERIALIZATION_OPTIONS_INCLUDE_SHADOW_TREE'
}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
StackFrame = Serialization::Record.define(
column_number: 'columnNumber',
function_name: {wire_key: 'functionName', primitive: 'string'},
line_number: 'lineNumber',
url: {wire_key: 'url', primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
StackTrace = Serialization::Record.define(
call_frames: {wire_key: 'callFrames', ref: 'Script::StackFrame', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
Source = Serialization::Record.define(
realm: 'realm',
context: {wire_key: 'context', required: false},
user_context: {wire_key: 'userContext', required: false}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RealmTarget = Serialization::Record.define(realm: 'realm')
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
ContextTarget = Serialization::Record.define(
context: 'context',
sandbox: {wire_key: 'sandbox', required: false, primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
class Target < Serialization::Union
presence(
'Script::ContextTarget' => ['context'],
'Script::RealmTarget' => ['realm']
)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
AddPreloadScriptParameters = Serialization::Record.define(
function_declaration: {wire_key: 'functionDeclaration', primitive: 'string'},
arguments: {wire_key: 'arguments', required: false, ref: 'Script::ChannelValue', list: true},
contexts: {wire_key: 'contexts', required: false, list: true},
user_contexts: {wire_key: 'userContexts', required: false, list: true},
sandbox: {wire_key: 'sandbox', required: false, primitive: 'string'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
AddPreloadScriptResult = Serialization::Record.define(script: 'script')
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
DisownParameters = Serialization::Record.define(
handles: {wire_key: 'handles', list: true},
target: {wire_key: 'target', ref: 'Script::Target'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
CallFunctionParameters = Serialization::Record.define(
function_declaration: {wire_key: 'functionDeclaration', primitive: 'string'},
await_promise: {wire_key: 'awaitPromise', primitive: 'boolean'},
target: {wire_key: 'target', ref: 'Script::Target'},
arguments: {wire_key: 'arguments', required: false, ref: 'Script::LocalValue', list: true},
result_ownership: {wire_key: 'resultOwnership', required: false, enum: 'Script::RESULT_OWNERSHIP'},
serialization_options: {
wire_key: 'serializationOptions',
required: false,
ref: 'Script::SerializationOptions'
},
this: {wire_key: 'this', required: false, ref: 'Script::LocalValue'},
user_activation: {wire_key: 'userActivation', required: false, primitive: 'boolean'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
EvaluateParameters = Serialization::Record.define(
expression: {wire_key: 'expression', primitive: 'string'},
target: {wire_key: 'target', ref: 'Script::Target'},
await_promise: {wire_key: 'awaitPromise', primitive: 'boolean'},
result_ownership: {wire_key: 'resultOwnership', required: false, enum: 'Script::RESULT_OWNERSHIP'},
serialization_options: {
wire_key: 'serializationOptions',
required: false,
ref: 'Script::SerializationOptions'
},
user_activation: {wire_key: 'userActivation', required: false, primitive: 'boolean'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
GetRealmsParameters = Serialization::Record.define(
context: {wire_key: 'context', required: false},
type: {wire_key: 'type', required: false, enum: 'Script::REALM_TYPE'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
GetRealmsResult = Serialization::Record.define(
realms: {wire_key: 'realms', ref: 'Script::RealmInfo', list: true}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RemovePreloadScriptParameters = Serialization::Record.define(script: 'script')
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
MessageParameters = Serialization::Record.define(
channel: 'channel',
data: {wire_key: 'data', ref: 'Script::RemoteValue'},
source: {wire_key: 'source', ref: 'Script::Source'}
)
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
RealmDestroyedParameters = Serialization::Record.define(realm: 'realm')
EVENT_TYPES = {
'script.message' => Script::MessageParameters,
'script.realmCreated' => Script::RealmInfo,
'script.realmDestroyed' => Script::RealmDestroyedParameters
}.freeze
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
def add_preload_script(
function_declaration:,
arguments: Serialization::UNSET,
contexts: Serialization::UNSET,
user_contexts: Serialization::UNSET,
sandbox: Serialization::UNSET
)
params = AddPreloadScriptParameters.new(
function_declaration: function_declaration,
arguments: arguments,
contexts: contexts,
user_contexts: user_contexts,
sandbox: sandbox
)
execute(cmd: 'script.addPreloadScript', params: params, result: Script::AddPreloadScriptResult)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
def call_function(
function_declaration:,
await_promise:,
target:,
arguments: Serialization::UNSET,
result_ownership: Serialization::UNSET,
serialization_options: Serialization::UNSET,
this: Serialization::UNSET,
user_activation: Serialization::UNSET
)
Serialization.validate!('resultOwnership', result_ownership, Script::RESULT_OWNERSHIP)
params = CallFunctionParameters.new(
function_declaration: function_declaration,
await_promise: await_promise,
target: target,
arguments: arguments,
result_ownership: result_ownership,
serialization_options: serialization_options,
this: this,
user_activation: user_activation
)
execute(cmd: 'script.callFunction', params: params, result: Script::EvaluateResult)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
def disown(handles:, target:)
params = DisownParameters.new(handles: handles, target: target)
execute(cmd: 'script.disown', params: params)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
def evaluate(
expression:,
target:,
await_promise:,
result_ownership: Serialization::UNSET,
serialization_options: Serialization::UNSET,
user_activation: Serialization::UNSET
)
Serialization.validate!('resultOwnership', result_ownership, Script::RESULT_OWNERSHIP)
params = EvaluateParameters.new(
expression: expression,
target: target,
await_promise: await_promise,
result_ownership: result_ownership,
serialization_options: serialization_options,
user_activation: user_activation
)
execute(cmd: 'script.evaluate', params: params, result: Script::EvaluateResult)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
def get_realms(context: Serialization::UNSET, type: Serialization::UNSET)
Serialization.validate!('type', type, Script::REALM_TYPE)
params = GetRealmsParameters.new(context: context, type: type)
execute(cmd: 'script.getRealms', params: params, result: Script::GetRealmsResult)
end
# @api private
# @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
def remove_preload_script(script:)
params = RemovePreloadScriptParameters.new(script: script)
execute(cmd: 'script.removePreloadScript', params: params)
end
end # Script
end # Protocol
end # BiDi
end # WebDriver
end # Selenium