playwright/packages/protocol/src/protocol.yml

3444 lines
62 KiB
YAML
Raw Normal View History

# Copyright (c) Microsoft Corporation.
#
# Licensed 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.
StackFrame:
type: object
properties:
file: string
line: number?
column: number?
function: string?
# This object can be send with any rpc call in the "metadata" field.
Metadata:
type: object
properties:
location:
type: object?
properties:
file: string
line: number?
column: number?
apiName: string?
internal: boolean?
# The number of milliseconds elapsed since midnight, January 1, 1970 UTC.
wallTime: number?
ClientSideCallMetadata:
type: object
properties:
id: number
stack:
type: array?
items: StackFrame
Point:
type: object
properties:
x: number
y: number
Rect:
type: object
properties:
x: number
y: number
width: number
height: number
SerializedValue:
type: object
# Exactly one of the properties must be present.
properties:
n: number?
b: boolean?
s: string?
v:
type: enum?
literals:
- null
- undefined
- NaN
- Infinity
- -Infinity
- "-0"
# String representation of the Date.
d: string?
# String representation of the URL.
u: string?
# Regular expression pattern and flags.
r:
type: object?
properties:
p: string
f: string
a:
type: array?
items: SerializedValue
# Object with keys and values.
o:
type: array?
items:
type: object
properties:
k: string
v: SerializedValue
# An index in the handles array from SerializedArgument.
h: number?
# Index of the object in value-type for circular reference resolution.
id: number?
# Ref to the object in value-type for circular reference resolution.
ref: number?
# Represents a value with handle references.
SerializedArgument:
type: object
properties:
value: SerializedValue
handles:
type: array
items: Channel
ExpectedTextValue:
type: object
properties:
string: string?
regexSource: string?
regexFlags: string?
matchSubstring: boolean?
ignoreCase: boolean?
normalizeWhiteSpace: boolean?
AXNode:
type: object
properties:
role: string
name: string
valueString: string?
valueNumber: number?
description: string?
keyshortcuts: string?
roledescription: string?
valuetext: string?
disabled: boolean?
expanded: boolean?
focused: boolean?
modal: boolean?
multiline: boolean?
multiselectable: boolean?
readonly: boolean?
required: boolean?
selected: boolean?
checked:
type: enum?
literals:
- checked
- unchecked
- mixed
pressed:
type: enum?
literals:
- pressed
- released
- mixed
level: number?
valuemin: number?
valuemax: number?
autocomplete: string?
haspopup: string?
invalid: string?
orientation: string?
children:
type: array?
items: AXNode
SetNetworkCookie:
type: object
properties:
name: string
value: string
url: string?
domain: string?
path: string?
expires: number?
httpOnly: boolean?
secure: boolean?
sameSite:
type: enum?
literals:
- Strict
- Lax
- None
NetworkCookie:
type: object
properties:
name: string
value: string
domain: string
path: string
expires: number
httpOnly: boolean
secure: boolean
sameSite:
type: enum
literals:
- Strict
- Lax
- None
NameValue:
type: object
properties:
name: string
value: string
OriginStorage:
type: object
properties:
origin: string
localStorage:
type: array
items: NameValue
SerializedError:
type: object
properties:
error:
type: object?
properties:
message: string
name: string
stack: string?
value: SerializedValue?
RecordHarOptions:
type: object
properties:
path: string
content:
type: enum?
literals:
- embed
- attach
- omit
mode:
type: enum?
literals:
- full
- minimal
urlGlob: string?
urlRegexSource: string?
urlRegexFlags: string?
FormField:
type: object
properties:
name: string
value: string?
file:
type: object?
properties:
name: string
mimeType: string?
buffer: binary
APIRequestContext:
type: interface
initializer:
tracing: Tracing
commands:
fetch:
parameters:
url: string
params:
type: array?
items: NameValue
method: string?
headers:
type: array?
items: NameValue
postData: binary?
jsonData: json?
formData:
type: array?
items: NameValue
multipartData:
type: array?
items: FormField
timeout: number?
failOnStatusCode: boolean?
ignoreHTTPSErrors: boolean?
maxRedirects: number?
returns:
response: APIResponse
fetchResponseBody:
parameters:
fetchUid: string
returns:
binary: binary?
fetchLog:
parameters:
fetchUid: string
returns:
log:
type: array
items: string
storageState:
returns:
cookies:
type: array
items: NetworkCookie
origins:
type: array
items: OriginStorage
disposeAPIResponse:
parameters:
fetchUid: string
dispose:
APIResponse:
type: object
properties:
2021-09-08 22:40:07 +02:00
fetchUid: string
url: string
status: number
statusText: string
headers:
type: array
items: NameValue
LifecycleEvent:
type: enum
literals:
- load
- domcontentloaded
- networkidle
- commit
CommonScreenshotOptions:
type: mixin
properties:
omitBackground: boolean?
caret:
type: enum?
literals:
- hide
- initial
animations:
type: enum?
literals:
- disabled
- allow
scale:
type: enum?
literals:
- css
- device
mask:
type: array?
items:
type: object
properties:
frame: Frame
selector: string
LaunchOptions:
type: mixin
properties:
channel: string?
executablePath: string?
args:
type: array?
items: string
ignoreAllDefaultArgs: boolean?
ignoreDefaultArgs:
type: array?
items: string
handleSIGINT: boolean?
handleSIGTERM: boolean?
handleSIGHUP: boolean?
timeout: number?
env:
type: array?
items: NameValue
headless: boolean?
devtools: boolean?
proxy:
type: object?
properties:
server: string
bypass: string?
username: string?
password: string?
downloadsPath: string?
tracesDir: string?
chromiumSandbox: boolean?
ContextOptions:
type: mixin
properties:
noDefaultViewport: boolean?
viewport:
type: object?
properties:
width: number
height: number
screen:
type: object?
properties:
width: number
height: number
ignoreHTTPSErrors: boolean?
javaScriptEnabled: boolean?
bypassCSP: boolean?
userAgent: string?
locale: string?
timezoneId: string?
geolocation:
type: object?
properties:
longitude: number
latitude: number
accuracy: number?
permissions:
type: array?
items: string
extraHTTPHeaders:
type: array?
items: NameValue
offline: boolean?
httpCredentials:
type: object?
properties:
username: string
password: string
deviceScaleFactor: number?
isMobile: boolean?
hasTouch: boolean?
colorScheme:
type: enum?
literals:
- dark
- light
- no-preference
- no-override
reducedMotion:
type: enum?
literals:
- reduce
- no-preference
- no-override
forcedColors:
type: enum?
literals:
- active
- none
- no-override
acceptDownloads: boolean?
baseURL: string?
recordVideo:
type: object?
properties:
dir: string
size:
type: object?
properties:
width: number
height: number
recordHar: RecordHarOptions?
strictSelectors: boolean?
serviceWorkers:
type: enum?
literals:
- allow
- block
LocalUtils:
type: interface
commands:
zip:
parameters:
zipFile: string
entries:
type: array
items: NameValue
mode:
type: enum
literals:
- write
- append
metadata:
type: array
items: ClientSideCallMetadata
includeSources: boolean
harOpen:
parameters:
file: string
returns:
harId: string?
error: string?
harLookup:
parameters:
harId: string
url: string
method: string
headers:
type: array
items: NameValue
postData: binary?
isNavigationRequest: boolean
returns:
action:
type: enum
literals:
- error
- redirect
- fulfill
- noentry
message: string?
redirectURL: string?
status: number?
headers:
type: array?
items: NameValue
body: binary?
harClose:
parameters:
harId: string
harUnzip:
parameters:
zipFile: string
harFile: string
connect:
parameters:
wsEndpoint: string
headers: json?
exposeNetwork: string?
slowMo: number?
timeout: number?
socksProxyRedirectPortForTest: number?
returns:
pipe: JsonPipe
Root:
type: interface
commands:
initialize:
parameters:
sdkLanguage:
type: enum
literals:
- javascript
- python
- java
- csharp
returns:
playwright: Playwright
Playwright:
type: interface
initializer:
chromium: BrowserType
firefox: BrowserType
webkit: BrowserType
android: Android
electron: Electron
utils: LocalUtils
deviceDescriptors:
type: array
items:
type: object
properties:
name: string
descriptor:
type: object
properties:
userAgent: string
viewport:
type: object
properties:
width: number
height: number
screen:
type: object?
properties:
width: number
height: number
deviceScaleFactor: number
isMobile: boolean
hasTouch: boolean
defaultBrowserType:
type: enum
literals:
- chromium
- firefox
- webkit
selectors: Selectors
# Only present when connecting remotely via BrowserType.connect() method.
preLaunchedBrowser: Browser?
# Only present when connecting remotely via Android.connect() method.
preConnectedAndroidDevice: AndroidDevice?
# Only present when socks proxy is supported.
socksSupport: SocksSupport?
commands:
newRequest:
parameters:
baseURL: string?
userAgent: string?
ignoreHTTPSErrors: boolean?
extraHTTPHeaders:
type: array?
items: NameValue
httpCredentials:
type: object?
properties:
username: string
password: string
proxy:
type: object?
properties:
server: string
bypass: string?
username: string?
password: string?
timeout: number?
storageState:
type: object?
properties:
cookies:
type: array
items: NetworkCookie
origins:
type: array
items: OriginStorage
tracesDir: string?
returns:
request: APIRequestContext
RecorderSource:
type: object
properties:
isRecorded: boolean
id: string
label: string
text: string
language: string
highlight:
type: array
items:
type: object
properties:
line: number
type: string
revealLine: number?
group: string?
DebugController:
type: interface
commands:
initialize:
parameters:
codegenId: string
sdkLanguage:
type: enum
literals:
- javascript
- python
- java
- csharp
setReportStateChanged:
parameters:
enabled: boolean
resetForReuse:
navigate:
parameters:
url: string
setRecorderMode:
parameters:
mode:
type: enum
literals:
- inspecting
- recording
- none
testIdAttributeName: string?
highlight:
parameters:
selector: string
hideHighlight:
resume:
kill:
closeAllBrowsers:
events:
inspectRequested:
parameters:
selector: string
locator: string
stateChanged:
parameters:
pageCount: number
sourceChanged:
parameters:
text: string
header: string?
footer: string?
actions:
type: array?
items: string
paused:
parameters:
paused: boolean
# Deprecated
browsersChanged:
parameters:
browsers:
type: array
items:
type: object
properties:
contexts:
type: array
items:
type: object
properties:
pages:
type: array
items: string
SocksSupport:
type: interface
commands:
socksConnected:
parameters:
uid: string
host: string
port: number
socksFailed:
parameters:
uid: string
errorCode: string
socksData:
parameters:
uid: string
data: binary
socksError:
parameters:
uid: string
error: string
socksEnd:
parameters:
uid: string
events:
socksRequested:
parameters:
uid: string
host: string
port: number
socksData:
parameters:
uid: string
data: binary
socksClosed:
parameters:
uid: string
Selectors:
type: interface
commands:
register:
parameters:
name: string
source: string
contentScript: boolean?
setTestIdAttributeName:
parameters:
testIdAttributeName: string
BrowserType:
type: interface
initializer:
executablePath: string
name: string
commands:
launch:
parameters:
$mixin: LaunchOptions
firefoxUserPrefs: json?
slowMo: number?
returns:
browser: Browser
launchPersistentContext:
parameters:
$mixin1: LaunchOptions
$mixin2: ContextOptions
userDataDir: string
slowMo: number?
returns:
context: BrowserContext
connectOverCDP:
parameters:
endpointURL: string
headers:
type: array?
items: NameValue
slowMo: number?
timeout: number?
returns:
browser: Browser
defaultContext: BrowserContext?
Browser:
type: interface
initializer:
version: string
name: string
commands:
close:
killForTests:
newContext:
parameters:
$mixin: ContextOptions
proxy:
type: object?
properties:
server: string
bypass: string?
username: string?
password: string?
storageState:
type: object?
properties:
cookies:
type: array?
items: SetNetworkCookie
origins:
type: array?
items: OriginStorage
returns:
context: BrowserContext
newContextForReuse:
parameters:
$mixin: ContextOptions
proxy:
type: object?
properties:
server: string
bypass: string?
username: string?
password: string?
storageState:
type: object?
properties:
cookies:
type: array?
items: SetNetworkCookie
origins:
type: array?
items: OriginStorage
returns:
context: BrowserContext
2021-04-02 03:47:14 +02:00
newBrowserCDPSession:
returns:
session: CDPSession
2021-04-02 03:47:14 +02:00
startTracing:
parameters:
page: Page?
path: string?
screenshots: boolean?
categories:
type: array?
items: string
2021-04-02 03:47:14 +02:00
stopTracing:
returns:
binary: binary
events:
close:
EventTarget:
type: interface
commands:
waitForEventInfo:
parameters:
info:
type: object
properties:
waitId: string
phase:
type: enum
literals:
- before
- after
- log
event: string?
message: string?
error: string?
tracing:
snapshot: true
BrowserContext:
type: interface
extends: EventTarget
initializer:
isChromium: boolean
requestContext: APIRequestContext
tracing: Tracing
commands:
addCookies:
parameters:
cookies:
type: array
items: SetNetworkCookie
addInitScript:
parameters:
source: string
clearCookies:
clearPermissions:
close:
cookies:
parameters:
urls:
type: array
items: string
returns:
cookies:
type: array
items: NetworkCookie
exposeBinding:
parameters:
name: string
needsHandle: boolean?
grantPermissions:
parameters:
permissions:
type: array
items: string
origin: string?
newPage:
returns:
page: Page
setDefaultNavigationTimeoutNoReply:
parameters:
timeout: number?
setDefaultTimeoutNoReply:
parameters:
timeout: number?
setExtraHTTPHeaders:
parameters:
headers:
type: array
items: NameValue
setGeolocation:
parameters:
geolocation:
type: object?
properties:
longitude: number
latitude: number
accuracy: number?
setHTTPCredentials:
parameters:
httpCredentials:
type: object?
properties:
username: string
password: string
setNetworkInterceptionPatterns:
parameters:
patterns:
type: array
items:
type: object
properties:
glob: string?
regexSource: string?
regexFlags: string?
setOffline:
parameters:
offline: boolean
storageState:
returns:
cookies:
type: array
items: NetworkCookie
origins:
type: array
items: OriginStorage
2021-01-25 23:49:26 +01:00
pause:
experimental: True
recorderSupplementEnable:
experimental: True
parameters:
language: string?
mode:
type: enum?
literals:
- inspecting
- recording
pauseOnNextStatement: boolean?
2021-01-25 23:49:26 +01:00
launchOptions: json?
contextOptions: json?
device: string?
saveStorage: string?
2021-01-25 23:49:26 +01:00
outputFile: string?
handleSIGINT: boolean?
omitCallTracking: boolean?
2021-04-02 03:47:14 +02:00
newCDPSession:
parameters:
page: Page?
frame: Frame?
returns:
session: CDPSession
harStart:
parameters:
page: Page?
options: RecordHarOptions
returns:
harId: string
harExport:
parameters:
harId: string?
returns:
artifact: Artifact
createTempFile:
parameters:
name: string
returns:
writableStream: WritableStream
updateSubscription:
parameters:
event:
type: enum
literals:
- request
- response
- requestFinished
- requestFailed
enabled: boolean
events:
bindingCall:
parameters:
binding: BindingCall
close:
page:
parameters:
page: Page
route:
parameters:
route: Route
video:
parameters:
artifact: Artifact
2021-04-02 03:47:14 +02:00
backgroundPage:
parameters:
2021-01-25 23:49:26 +01:00
page: Page
2021-04-02 03:47:14 +02:00
serviceWorker:
parameters:
2021-01-25 23:49:26 +01:00
worker: Worker
request:
parameters:
request: Request
page: Page?
requestFailed:
parameters:
request: Request
failureText: string?
responseEndTiming: number
page: Page?
requestFinished:
parameters:
request: Request
response: Response?
responseEndTiming: number
page: Page?
response:
parameters:
response: Response
page: Page?
Page:
type: interface
extends: EventTarget
initializer:
mainFrame: Frame
viewportSize:
type: object?
properties:
width: number
height: number
isClosed: boolean
opener: Page?
commands:
setDefaultNavigationTimeoutNoReply:
parameters:
timeout: number?
setDefaultTimeoutNoReply:
parameters:
timeout: number?
addInitScript:
parameters:
source: string
close:
parameters:
runBeforeUnload: boolean?
emulateMedia:
parameters:
media:
type: enum?
literals:
- screen
- print
- no-override
colorScheme:
type: enum?
literals:
- dark
- light
- no-preference
- no-override
reducedMotion:
type: enum?
literals:
- reduce
- no-preference
- no-override
forcedColors:
type: enum?
literals:
- active
- none
- no-override
tracing:
snapshot: true
exposeBinding:
parameters:
name: string
needsHandle: boolean?
goBack:
parameters:
timeout: number?
waitUntil: LifecycleEvent?
returns:
response: Response?
tracing:
snapshot: true
goForward:
parameters:
timeout: number?
waitUntil: LifecycleEvent?
returns:
response: Response?
tracing:
snapshot: true
reload:
parameters:
timeout: number?
waitUntil: LifecycleEvent?
returns:
response: Response?
tracing:
snapshot: true
expectScreenshot:
parameters:
expected: binary?
timeout: number?
isNot: boolean
locator:
type: object?
properties:
frame: Frame
selector: string
comparatorOptions:
type: object?
properties:
feat: implement a new image comparison function (#19166) This patch implements a new image comparison function, codenamed "ssim-cie94". The goal of the new comparison function is to cancel out browser non-determenistic rendering. To use the new comparison function: ```ts await expect(page).toHaveScreenshot({ comparator: 'ssim-cie94', }); ``` As of Nov 30, 2022, we identified the following sources of non-determenistic rendering for Chromium: - Anti-aliasing for certain shapes might be different due to the way skia rasterizes certain shapes. - Color blending might be different on `x86` and `aarch64` architectures. The new function employs a few heuristics to fight these differences. Consider two non-equal image pixels `(r1, g1, b1)` and `(r2, g2, b2)`: 1. If the [CIE94] metric is less then 1.0, then we consider these pixels **EQUAL**. (The value `1.0` is the [just-noticeable difference] for [CIE94].). Otherwise, proceed to next step. 1. If all the 8 neighbors of the first pixel match its color, or if the 8 neighbors of the second pixel match its color, then these pixels are **DIFFERENT**. (In case of anti-aliasing, some of the direct neighbors have to be blended up or down.) Otherwise, proceed to next step. 1. If SSIM in some locality around the different pixels is more than 0.99, then consider this pixels to be **EQUAL**. Otherwise, mark them as **DIFFERENT**. (Local SSIM for anti-aliased pixels turns out to be very close to 1.0). [CIE94]: https://en.wikipedia.org/wiki/Color_difference#CIE94 [just-noticeable difference]: https://en.wikipedia.org/wiki/Just-noticeable_difference
2022-12-03 00:22:05 +01:00
comparator: string?
maxDiffPixels: number?
maxDiffPixelRatio: number?
threshold: number?
screenshotOptions:
type: object?
properties:
fullPage: boolean?
clip: Rect?
$mixin: CommonScreenshotOptions
returns:
diff: binary?
errorMessage: string?
actual: binary?
previous: binary?
log:
type: array?
items: string
tracing:
snapshot: true
screenshot:
parameters:
timeout: number?
type:
type: enum?
literals:
- png
- jpeg
quality: number?
fullPage: boolean?
clip: Rect?
$mixin: CommonScreenshotOptions
returns:
binary: binary
tracing:
snapshot: true
setExtraHTTPHeaders:
parameters:
headers:
type: array
items: NameValue
setNetworkInterceptionPatterns:
parameters:
patterns:
type: array
items:
type: object
properties:
glob: string?
regexSource: string?
regexFlags: string?
setViewportSize:
parameters:
viewportSize:
type: object
properties:
width: number
height: number
tracing:
snapshot: true
keyboardDown:
parameters:
key: string
tracing:
snapshot: true
keyboardUp:
parameters:
key: string
tracing:
snapshot: true
keyboardInsertText:
parameters:
text: string
tracing:
snapshot: true
keyboardType:
parameters:
text: string
delay: number?
tracing:
snapshot: true
keyboardPress:
parameters:
key: string
delay: number?
tracing:
snapshot: true
mouseMove:
parameters:
x: number
y: number
steps: number?
tracing:
snapshot: true
mouseDown:
parameters:
button:
type: enum?
literals:
- left
- right
- middle
clickCount: number?
tracing:
snapshot: true
mouseUp:
parameters:
button:
type: enum?
literals:
- left
- right
- middle
clickCount: number?
tracing:
snapshot: true
mouseClick:
parameters:
x: number
y: number
delay: number?
button:
type: enum?
literals:
- left
- right
- middle
clickCount: number?
tracing:
snapshot: true
2021-09-14 21:22:52 +02:00
mouseWheel:
parameters:
deltaX: number
deltaY: number
tracing:
snapshot: true
2020-10-19 19:07:33 +02:00
touchscreenTap:
parameters:
x: number
y: number
tracing:
snapshot: true
2020-10-19 19:07:33 +02:00
accessibilitySnapshot:
parameters:
interestingOnly: boolean?
root: ElementHandle?
returns:
rootAXNode: AXNode?
pdf:
parameters:
scale: number?
displayHeaderFooter: boolean?
headerTemplate: string?
footerTemplate: string?
printBackground: boolean?
landscape: boolean?
pageRanges: string?
format: string?
width: string?
height: string?
preferCSSPageSize: boolean?
margin:
type: object?
properties:
top: string?
bottom: string?
left: string?
right: string?
returns:
pdf: binary
2021-04-02 03:47:14 +02:00
startJSCoverage:
parameters:
resetOnNavigation: boolean?
reportAnonymousScripts: boolean?
2021-04-02 03:47:14 +02:00
stopJSCoverage:
returns:
entries:
type: array
items:
type: object
properties:
url: string
scriptId: string
source: string?
functions:
type: array
items:
type: object
properties:
functionName: string
isBlockCoverage: boolean
ranges:
type: array
items:
type: object
properties:
startOffset: number
endOffset: number
count: number
2021-04-02 03:47:14 +02:00
startCSSCoverage:
parameters:
resetOnNavigation: boolean?
2021-04-02 03:47:14 +02:00
stopCSSCoverage:
returns:
entries:
type: array
items:
type: object
properties:
url: string
text: string?
ranges:
type: array
items:
type: object
properties:
start: number
end: number
bringToFront:
updateSubscription:
parameters:
event:
type: enum
literals:
- fileChooser
- request
- response
- requestFinished
- requestFailed
enabled: boolean
events:
bindingCall:
parameters:
binding: BindingCall
close:
console:
parameters:
message: ConsoleMessage
crash:
dialog:
parameters:
dialog: Dialog
download:
parameters:
url: string
suggestedFilename: string
artifact: Artifact
fileChooser:
parameters:
element: ElementHandle
isMultiple: boolean
frameAttached:
parameters:
frame: Frame
frameDetached:
parameters:
frame: Frame
pageError:
parameters:
error: SerializedError
route:
parameters:
route: Route
video:
parameters:
artifact: Artifact
webSocket:
parameters:
webSocket: WebSocket
worker:
parameters:
worker: Worker
Frame:
type: interface
initializer:
url: string
name: string
parentFrame: Frame?
loadStates:
type: array
items: LifecycleEvent
commands:
evalOnSelector:
parameters:
selector: string
strict: boolean?
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
tracing:
snapshot: true
evalOnSelectorAll:
parameters:
selector: string
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
tracing:
snapshot: true
addScriptTag:
parameters:
url: string?
content: string?
type: string?
returns:
element: ElementHandle
tracing:
snapshot: true
addStyleTag:
parameters:
url: string?
content: string?
returns:
element: ElementHandle
tracing:
snapshot: true
blur:
parameters:
selector: string
strict: boolean?
timeout: number?
tracing:
snapshot: true
check:
parameters:
selector: string
strict: boolean?
force: boolean?
noWaitAfter: boolean?
position: Point?
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
click:
parameters:
selector: string
strict: boolean?
force: boolean?
noWaitAfter: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
delay: number?
button:
type: enum?
literals:
- left
- right
- middle
clickCount: number?
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
content:
returns:
value: string
dragAndDrop:
parameters:
source: string
target: string
force: boolean?
noWaitAfter: boolean?
timeout: number?
trial: boolean?
sourcePosition: Point?
targetPosition: Point?
2021-11-22 20:27:26 +01:00
strict: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
dblclick:
parameters:
selector: string
strict: boolean?
force: boolean?
noWaitAfter: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
delay: number?
button:
type: enum?
literals:
- left
- right
- middle
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
dispatchEvent:
parameters:
selector: string
strict: boolean?
type: string
eventInit: SerializedArgument
timeout: number?
tracing:
snapshot: true
evaluateExpression:
parameters:
expression: string
isFunction: boolean?
exposeUtilityScript: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
tracing:
snapshot: true
evaluateExpressionHandle:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
handle: JSHandle
tracing:
snapshot: true
fill:
parameters:
selector: string
strict: boolean?
value: string
force: boolean?
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
focus:
parameters:
selector: string
strict: boolean?
timeout: number?
tracing:
snapshot: true
frameElement:
returns:
element: ElementHandle
highlight:
parameters:
selector: string
getAttribute:
parameters:
selector: string
strict: boolean?
name: string
timeout: number?
returns:
value: string?
tracing:
snapshot: true
goto:
parameters:
url: string
timeout: number?
waitUntil: LifecycleEvent?
referer: string?
returns:
response: Response?
tracing:
snapshot: true
hover:
parameters:
selector: string
strict: boolean?
force: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
timeout: number?
trial: boolean?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
innerHTML:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: string
tracing:
snapshot: true
innerText:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: string
tracing:
snapshot: true
inputValue:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: string
tracing:
snapshot: true
isChecked:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: boolean
tracing:
snapshot: true
isDisabled:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: boolean
tracing:
snapshot: true
isEnabled:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: boolean
tracing:
snapshot: true
isHidden:
parameters:
selector: string
strict: boolean?
returns:
value: boolean
tracing:
snapshot: true
isVisible:
parameters:
selector: string
strict: boolean?
returns:
value: boolean
tracing:
snapshot: true
isEditable:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: boolean
tracing:
snapshot: true
press:
parameters:
selector: string
strict: boolean?
key: string
delay: number?
noWaitAfter: boolean?
timeout: number?
tracing:
snapshot: true
pausesBeforeInput: true
querySelector:
parameters:
selector: string
strict: boolean?
returns:
element: ElementHandle?
querySelectorAll:
parameters:
selector: string
returns:
elements:
type: array
items: ElementHandle
queryCount:
parameters:
selector: string
returns:
value: number
selectOption:
parameters:
selector: string
strict: boolean?
elements:
type: array?
items: ElementHandle
options:
type: array?
items:
type: object
properties:
valueOrLabel: string?
value: string?
label: string?
index: number?
force: boolean?
timeout: number?
noWaitAfter: boolean?
returns:
values:
type: array
items: string
tracing:
snapshot: true
pausesBeforeInput: true
setContent:
parameters:
html: string
timeout: number?
waitUntil: LifecycleEvent?
tracing:
snapshot: true
setInputFiles:
parameters:
selector: string
strict: boolean?
files:
type: array
items:
type: object
properties:
name: string
mimeType: string?
buffer: binary
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
# This method should be used if one of the files is large (>50Mb).
setInputFilePaths:
parameters:
selector: string
strict: boolean?
# Only one of localPaths and streams should be present.
localPaths:
type: array?
items: string
streams:
type: array?
items: WritableStream
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
2020-10-19 19:07:33 +02:00
tap:
parameters:
selector: string
strict: boolean?
2020-10-19 19:07:33 +02:00
force: boolean?
noWaitAfter: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
2020-10-19 19:07:33 +02:00
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
2020-10-19 19:07:33 +02:00
textContent:
parameters:
selector: string
strict: boolean?
timeout: number?
returns:
value: string?
tracing:
snapshot: true
title:
returns:
value: string
type:
parameters:
selector: string
strict: boolean?
text: string
delay: number?
noWaitAfter: boolean?
timeout: number?
tracing:
snapshot: true
pausesBeforeInput: true
uncheck:
parameters:
selector: string
strict: boolean?
force: boolean?
noWaitAfter: boolean?
position: Point?
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
waitForTimeout:
parameters:
timeout: number
tracing:
snapshot: true
waitForFunction:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
timeout: number?
# When present, polls on interval. Otherwise, polls on raf.
pollingInterval: number?
returns:
handle: JSHandle
tracing:
snapshot: true
waitForSelector:
parameters:
selector: string
strict: boolean?
timeout: number?
state:
type: enum?
literals:
- attached
- detached
- visible
- hidden
omitReturnValue: boolean?
returns:
element: ElementHandle?
tracing:
snapshot: true
expect:
parameters:
selector: string
expression: string
expressionArg: json?
expectedText:
type: array?
items: ExpectedTextValue
expectedNumber: number?
expectedValue: SerializedArgument?
useInnerText: boolean?
isNot: boolean
timeout: number?
returns:
matches: boolean
received: SerializedValue?
timedOut: boolean?
log:
type: array?
items: string
tracing:
snapshot: true
events:
loadstate:
parameters:
add: LifecycleEvent?
remove: LifecycleEvent?
navigated:
parameters:
url: string
name: string
newDocument:
type: object?
properties:
request: Request?
error: string?
Worker:
type: interface
initializer:
url: string
commands:
evaluateExpression:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
evaluateExpressionHandle:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
handle: JSHandle
2020-08-08 00:40:21 +02:00
events:
close:
JSHandle:
type: interface
initializer:
preview: string
commands:
dispose:
evaluateExpression:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
tracing:
snapshot: true
evaluateExpressionHandle:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
handle: JSHandle
tracing:
snapshot: true
getPropertyList:
returns:
properties:
type: array
items:
type: object
properties:
name: string
value: JSHandle
getProperty:
parameters:
name: string
returns:
handle: JSHandle
jsonValue:
returns:
value: SerializedValue
events:
previewUpdated:
parameters:
preview: string
ElementHandle:
type: interface
extends: JSHandle
commands:
evalOnSelector:
parameters:
selector: string
strict: boolean?
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
tracing:
snapshot: true
evalOnSelectorAll:
parameters:
selector: string
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
tracing:
snapshot: true
boundingBox:
returns:
value: Rect?
check:
parameters:
force: boolean?
noWaitAfter: boolean?
position: Point?
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
click:
parameters:
force: boolean?
noWaitAfter: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
delay: number?
button:
type: enum?
literals:
- left
- right
- middle
clickCount: number?
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
contentFrame:
returns:
frame: Frame?
dblclick:
parameters:
force: boolean?
noWaitAfter: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
delay: number?
button:
type: enum?
literals:
- left
- right
- middle
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
dispatchEvent:
parameters:
type: string
eventInit: SerializedArgument
tracing:
snapshot: true
fill:
parameters:
value: string
force: boolean?
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
focus:
tracing:
snapshot: true
getAttribute:
parameters:
name: string
returns:
value: string?
hover:
parameters:
force: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
timeout: number?
trial: boolean?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
innerHTML:
returns:
value: string
tracing:
snapshot: true
innerText:
returns:
value: string
tracing:
snapshot: true
inputValue:
returns:
value: string
tracing:
snapshot: true
isChecked:
returns:
value: boolean
tracing:
snapshot: true
isDisabled:
returns:
value: boolean
tracing:
snapshot: true
isEditable:
returns:
value: boolean
tracing:
snapshot: true
isEnabled:
returns:
value: boolean
tracing:
snapshot: true
isHidden:
returns:
value: boolean
tracing:
snapshot: true
isVisible:
returns:
value: boolean
tracing:
snapshot: true
ownerFrame:
returns:
frame: Frame?
press:
parameters:
key: string
delay: number?
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
querySelector:
parameters:
selector: string
strict: boolean?
returns:
element: ElementHandle?
querySelectorAll:
parameters:
selector: string
returns:
elements:
type: array
items: ElementHandle
screenshot:
parameters:
timeout: number?
type:
type: enum?
literals:
- png
- jpeg
quality: number?
$mixin: CommonScreenshotOptions
returns:
binary: binary
tracing:
snapshot: true
scrollIntoViewIfNeeded:
parameters:
timeout: number?
tracing:
snapshot: true
selectOption:
parameters:
elements:
type: array?
items: ElementHandle
options:
type: array?
items:
type: object
properties:
valueOrLabel: string?
value: string?
label: string?
index: number?
force: boolean?
timeout: number?
noWaitAfter: boolean?
returns:
values:
type: array
items: string
tracing:
snapshot: true
pausesBeforeInput: true
selectText:
parameters:
force: boolean?
timeout: number?
tracing:
snapshot: true
setInputFiles:
parameters:
files:
type: array
items:
type: object
properties:
name: string
mimeType: string?
buffer: binary
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
# This method should be used if one of the files is large (>50Mb).
setInputFilePaths:
parameters:
# Only one of localPaths and streams should be present.
localPaths:
type: array?
items: string
streams:
type: array?
items: WritableStream
timeout: number?
noWaitAfter: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
2020-10-19 19:07:33 +02:00
tap:
parameters:
force: boolean?
noWaitAfter: boolean?
modifiers:
type: array?
items:
type: enum
literals:
- Alt
- Control
- Meta
- Shift
position: Point?
2020-10-19 19:07:33 +02:00
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
2020-10-19 19:07:33 +02:00
textContent:
returns:
value: string?
tracing:
snapshot: true
type:
parameters:
text: string
delay: number?
noWaitAfter: boolean?
timeout: number?
tracing:
snapshot: true
pausesBeforeInput: true
uncheck:
parameters:
force: boolean?
noWaitAfter: boolean?
position: Point?
timeout: number?
trial: boolean?
tracing:
snapshot: true
pausesBeforeInput: true
waitForElementState:
parameters:
state:
type: enum
literals:
- visible
- hidden
- stable
- enabled
- disabled
- editable
timeout: number?
tracing:
snapshot: true
waitForSelector:
parameters:
selector: string
strict: boolean?
timeout: number?
state:
type: enum?
literals:
- attached
- detached
- visible
- hidden
returns:
element: ElementHandle?
tracing:
snapshot: true
Request:
type: interface
initializer:
frame: Frame?
serviceWorker: Worker?
url: string
resourceType: string
method: string
postData: binary?
headers:
type: array
items: NameValue
isNavigationRequest: boolean
redirectedFrom: Request?
commands:
response:
returns:
response: Response?
rawRequestHeaders:
returns:
headers:
type: array
items: NameValue
Route:
type: interface
initializer:
request: Request
commands:
redirectNavigationRequest:
parameters:
url: string
abort:
parameters:
2020-07-30 20:14:41 +02:00
errorCode: string?
continue:
parameters:
url: string?
method: string?
headers:
type: array?
items: NameValue
postData: binary?
fulfill:
parameters:
# default is 200
status: number?
headers:
type: array?
items: NameValue
body: string?
isBase64: boolean?
fetchResponseUid: string?
ResourceTiming:
type: object
properties:
startTime: number
domainLookupStart: number
domainLookupEnd: number
connectStart: number
secureConnectionStart: number
connectEnd: number
requestStart: number
responseStart: number
Response:
type: interface
initializer:
request: Request
url: string
status: number
statusText: string
headers:
type: array
items: NameValue
timing: ResourceTiming
fromServiceWorker: boolean
commands:
body:
returns:
binary: binary
securityDetails:
returns:
value: SecurityDetails?
serverAddr:
returns:
value: RemoteAddr?
rawResponseHeaders:
returns:
headers:
type: array
items: NameValue
sizes:
returns:
sizes: RequestSizes
SecurityDetails:
type: object
properties:
issuer: string?
protocol: string?
subjectName: string?
validFrom: number?
validTo: number?
RequestSizes:
type: object
properties:
requestBodySize: number
requestHeadersSize: number
responseBodySize: number
responseHeadersSize: number
RemoteAddr:
type: object
properties:
ipAddress: string
port: number
WebSocket:
type: interface
extends: EventTarget
initializer:
url: string
events:
open:
frameSent:
parameters:
opcode: number
data: string
frameReceived:
parameters:
opcode: number
data: string
socketError:
parameters:
error: string
close:
ConsoleMessage:
type: interface
initializer:
type: string
text: string
args:
type: array
items: JSHandle
location:
type: object
properties:
url: string
lineNumber: number
columnNumber: number
BindingCall:
type: interface
initializer:
frame: Frame
name: string
args:
type: array?
items: SerializedValue
handle: JSHandle?
commands:
reject:
parameters:
error: SerializedError
resolve:
parameters:
result: SerializedArgument
Dialog:
type: interface
initializer:
type: string
message: string
defaultValue: string
commands:
accept:
parameters:
promptText: string?
dismiss:
Tracing:
type: interface
commands:
tracingStart:
parameters:
name: string?
snapshots: boolean?
screenshots: boolean?
sources: boolean?
tracingStartChunk:
parameters:
title: string?
tracingStopChunk:
parameters:
mode:
type: enum
literals:
- archive
- discard
- entries
returns:
# The artifact may be missing if the browser closes while tracing is being stopped.
# Or it can be missing if client-side compression is taking place.
artifact: Artifact?
# For local mode, these are all entries.
entries:
type: array?
items: NameValue
tracingStop:
Artifact:
type: interface
initializer:
absolutePath: string
commands:
pathAfterFinished:
returns:
value: string?
# Blocks path/failure/delete/context.close until saved to the local |path|.
saveAs:
parameters:
path: string
# Blocks path/failure/delete/context.close until the stream is closed.
saveAsStream:
returns:
stream: Stream
failure:
returns:
error: string?
stream:
returns:
stream: Stream?
cancel:
delete:
Stream:
type: interface
commands:
read:
parameters:
size: number?
returns:
binary: binary
close:
WritableStream:
type: interface
commands:
write:
parameters:
binary: binary
close:
CDPSession:
type: interface
commands:
send:
parameters:
method: string
params: json?
returns:
result: json
detach:
events:
event:
parameters:
method: string
params: json?
Electron:
type: interface
commands:
launch:
parameters:
2021-02-01 20:43:26 +01:00
executablePath: string?
args:
type: array?
items: string
cwd: string?
env:
type: array?
items: NameValue
timeout: number?
acceptDownloads: boolean?
bypassCSP: boolean?
colorScheme:
type: enum?
literals:
- dark
- light
- no-preference
- no-override
extraHTTPHeaders:
type: array?
items: NameValue
geolocation:
type: object?
properties:
longitude: number
latitude: number
accuracy: number?
httpCredentials:
type: object?
properties:
username: string
password: string
ignoreHTTPSErrors: boolean?
locale: string?
offline: boolean?
recordHar: RecordHarOptions?
recordVideo:
type: object?
properties:
dir: string
size:
type: object?
properties:
width: number
height: number
strictSelectors: boolean?
timezoneId: string?
returns:
electronApplication: ElectronApplication
ElectronApplication:
type: interface
extends: EventTarget
initializer:
context: BrowserContext
commands:
browserWindow:
parameters:
page: Page
returns:
handle: JSHandle
evaluateExpression:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
value: SerializedValue
evaluateExpressionHandle:
parameters:
expression: string
isFunction: boolean?
arg: SerializedArgument
returns:
handle: JSHandle
close:
events:
close:
Android:
type: interface
commands:
devices:
parameters:
host: string?
port: number?
omitDriverInstall: boolean?
returns:
devices:
type: array
items: AndroidDevice
2020-12-10 02:15:24 +01:00
setDefaultTimeoutNoReply:
parameters:
timeout: number
AndroidSocket:
type: interface
commands:
write:
parameters:
data: binary
close:
events:
data:
parameters:
data: binary
close:
AndroidDevice:
type: interface
extends: EventTarget
initializer:
model: string
serial: string
commands:
wait:
parameters:
selector: AndroidSelector
state:
type: enum?
literals:
- gone
timeout: number?
fill:
parameters:
selector: AndroidSelector
text: string
timeout: number?
tap:
parameters:
selector: AndroidSelector
duration: number?
timeout: number?
drag:
parameters:
selector: AndroidSelector
dest: Point
speed: number?
timeout: number?
fling:
parameters:
selector: AndroidSelector
direction:
type: enum
literals:
- up
- down
- left
- right
speed: number?
timeout: number?
longTap:
parameters:
selector: AndroidSelector
timeout: number?
pinchClose:
parameters:
selector: AndroidSelector
percent: number
speed: number?
timeout: number?
pinchOpen:
parameters:
selector: AndroidSelector
percent: number
speed: number?
timeout: number?
scroll:
parameters:
selector: AndroidSelector
direction:
type: enum
literals:
- up
- down
- left
- right
percent: number
speed: number?
timeout: number?
swipe:
parameters:
selector: AndroidSelector
direction:
type: enum
literals:
- up
- down
- left
- right
percent: number
speed: number?
timeout: number?
info:
parameters:
selector: AndroidSelector
returns:
info: AndroidElementInfo
2020-12-14 08:20:13 +01:00
screenshot:
returns:
binary: binary
inputType:
parameters:
text: string
inputPress:
parameters:
key: string
inputTap:
parameters:
point: Point
inputSwipe:
parameters:
segments:
type: array
items: Point
steps: number
inputDrag:
parameters:
from: Point
to: Point
steps: number
launchBrowser:
parameters:
$mixin: ContextOptions
pkg: string?
args:
type: array?
items: string
proxy:
type: object?
properties:
server: string
bypass: string?
username: string?
password: string?
returns:
context: BrowserContext
open:
parameters:
command: string
returns:
socket: AndroidSocket
shell:
parameters:
command: string
returns:
result: binary
installApk:
parameters:
file: binary
args:
type: array?
items: string
2020-12-14 07:00:37 +01:00
push:
parameters:
file: binary
path: string
mode: number?
2020-12-10 02:15:24 +01:00
setDefaultTimeoutNoReply:
parameters:
timeout: number
connectToWebView:
parameters:
socketName: string
2020-12-10 02:15:24 +01:00
returns:
context: BrowserContext
close:
2020-12-10 02:15:24 +01:00
events:
close:
2020-12-10 02:15:24 +01:00
webViewAdded:
parameters:
webView: AndroidWebView
webViewRemoved:
parameters:
socketName: string
2020-12-10 02:15:24 +01:00
AndroidWebView:
type: object
properties:
pid: number
pkg: string
socketName: string
2020-12-10 02:15:24 +01:00
AndroidSelector:
type: object
properties:
checkable: boolean?
checked: boolean?
clazz: string?
clickable: boolean?
depth: number?
desc: string?
enabled: boolean?
focusable: boolean?
focused: boolean?
hasChild:
type: object?
properties:
selector: AndroidSelector
hasDescendant:
type: object?
properties:
selector: AndroidSelector
maxDepth: number?
longClickable: boolean?
pkg: string?
res: string?
scrollable: boolean?
selected: boolean?
text: string?
AndroidElementInfo:
type: object
properties:
2020-12-13 17:14:32 +01:00
children:
type: array?
items: AndroidElementInfo
2020-12-10 02:15:24 +01:00
clazz: string
desc: string
res: string
pkg: string
text: string
bounds: Rect
checkable: boolean
checked: boolean
clickable: boolean
enabled: boolean
focusable: boolean
focused: boolean
longClickable: boolean
scrollable: boolean
selected: boolean
JsonPipe:
type: interface
commands:
send:
parameters:
message: json
close:
events:
message:
parameters:
message: json
closed:
parameters:
error: SerializedError?