@bctrl/sdk 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -0
- package/dist/agents/browser-use/index.d.ts +1 -0
- package/dist/agents/browser-use/index.js +9 -0
- package/dist/agents/browser-use/namespace.d.ts +39 -0
- package/dist/agents/browser-use/namespace.js +93 -0
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/index.js +17 -0
- package/dist/agents/stagehand/core.d.ts +93 -0
- package/dist/agents/stagehand/core.js +144 -0
- package/dist/agents/stagehand/index.d.ts +3 -0
- package/dist/agents/stagehand/index.js +24 -0
- package/dist/agents/stagehand/namespace.d.ts +51 -0
- package/dist/agents/stagehand/namespace.js +65 -0
- package/dist/ai-credentials/client.d.ts +12 -0
- package/dist/ai-credentials/client.js +70 -0
- package/dist/ai-credentials/index.d.ts +1 -0
- package/dist/ai-credentials/index.js +1 -0
- package/dist/base/event-binding.d.ts +7 -0
- package/dist/base/event-binding.js +23 -0
- package/dist/base/types.d.ts +109 -0
- package/dist/base/types.js +4 -0
- package/dist/bctrl.d.ts +37 -0
- package/dist/bctrl.js +77 -0
- package/dist/browser-extensions/client.d.ts +15 -0
- package/dist/browser-extensions/client.js +72 -0
- package/dist/browser-extensions/index.d.ts +2 -0
- package/dist/browser-extensions/index.js +1 -0
- package/dist/browser-profiles/client.d.ts +11 -0
- package/dist/browser-profiles/client.js +63 -0
- package/dist/browser-profiles/index.d.ts +1 -0
- package/dist/browser-profiles/index.js +1 -0
- package/dist/captcha/index.d.ts +1 -0
- package/dist/captcha/index.js +1 -0
- package/dist/captcha/namespace.d.ts +34 -0
- package/dist/captcha/namespace.js +41 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -0
- package/dist/client/rpc.d.ts +83 -0
- package/dist/client/rpc.js +354 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +28 -0
- package/dist/constants/browser.d.ts +2 -0
- package/dist/constants/browser.js +1 -0
- package/dist/contracts/agent-tools.d.ts +45 -0
- package/dist/contracts/agent-tools.js +31 -0
- package/dist/contracts/automation.d.ts +265 -0
- package/dist/contracts/automation.js +109 -0
- package/dist/contracts/browser-management.d.ts +179 -0
- package/dist/contracts/browser-management.js +95 -0
- package/dist/contracts/browser-use.d.ts +136 -0
- package/dist/contracts/browser-use.js +93 -0
- package/dist/contracts/captcha.d.ts +114 -0
- package/dist/contracts/captcha.js +40 -0
- package/dist/contracts/desktop.d.ts +223 -0
- package/dist/contracts/desktop.js +121 -0
- package/dist/contracts/drivers/playwright.d.ts +2008 -0
- package/dist/contracts/drivers/playwright.js +2033 -0
- package/dist/contracts/drivers/puppeteer.d.ts +1221 -0
- package/dist/contracts/drivers/puppeteer.js +941 -0
- package/dist/contracts/drivers/selenium.d.ts +156 -0
- package/dist/contracts/drivers/selenium.js +61 -0
- package/dist/contracts/drivers/stagehand.d.ts +155 -0
- package/dist/contracts/drivers/stagehand.js +7 -0
- package/dist/contracts/extensions.d.ts +13 -0
- package/dist/contracts/extensions.js +9 -0
- package/dist/contracts/index.d.ts +13 -0
- package/dist/contracts/index.js +13 -0
- package/dist/contracts/public-api.d.ts +360 -0
- package/dist/contracts/public-api.js +17 -0
- package/dist/contracts/runtime.d.ts +81 -0
- package/dist/contracts/runtime.js +16 -0
- package/dist/contracts/stagehand.d.ts +253 -0
- package/dist/contracts/stagehand.js +145 -0
- package/dist/contracts/storage.d.ts +51 -0
- package/dist/contracts/storage.js +56 -0
- package/dist/contracts/vault.d.ts +119 -0
- package/dist/contracts/vault.js +112 -0
- package/dist/contracts/version.d.ts +3 -0
- package/dist/contracts/version.js +16 -0
- package/dist/desktop.d.ts +2 -0
- package/dist/desktop.js +3 -0
- package/dist/drivers/desktop/index.d.ts +65 -0
- package/dist/drivers/desktop/index.js +68 -0
- package/dist/drivers/desktop/session.d.ts +313 -0
- package/dist/drivers/desktop/session.js +432 -0
- package/dist/drivers/playwright/event-emitter.d.ts +160 -0
- package/dist/drivers/playwright/event-emitter.js +297 -0
- package/dist/drivers/playwright/generated/api-request-context.d.ts +137 -0
- package/dist/drivers/playwright/generated/api-request-context.js +154 -0
- package/dist/drivers/playwright/generated/api-response.d.ts +119 -0
- package/dist/drivers/playwright/generated/api-response.js +123 -0
- package/dist/drivers/playwright/generated/browser-context.d.ts +284 -0
- package/dist/drivers/playwright/generated/browser-context.js +458 -0
- package/dist/drivers/playwright/generated/browser.d.ts +120 -0
- package/dist/drivers/playwright/generated/browser.js +151 -0
- package/dist/drivers/playwright/generated/clock.d.ts +80 -0
- package/dist/drivers/playwright/generated/clock.js +94 -0
- package/dist/drivers/playwright/generated/console-message.d.ts +94 -0
- package/dist/drivers/playwright/generated/console-message.js +89 -0
- package/dist/drivers/playwright/generated/coverage.d.ts +57 -0
- package/dist/drivers/playwright/generated/coverage.js +66 -0
- package/dist/drivers/playwright/generated/dialog.d.ts +79 -0
- package/dist/drivers/playwright/generated/dialog.js +80 -0
- package/dist/drivers/playwright/generated/element-handle.d.ts +399 -0
- package/dist/drivers/playwright/generated/element-handle.js +501 -0
- package/dist/drivers/playwright/generated/frame-locator.d.ts +34 -0
- package/dist/drivers/playwright/generated/frame-locator.js +63 -0
- package/dist/drivers/playwright/generated/frame.d.ts +557 -0
- package/dist/drivers/playwright/generated/frame.js +634 -0
- package/dist/drivers/playwright/generated/js-handle.d.ts +72 -0
- package/dist/drivers/playwright/generated/js-handle.js +92 -0
- package/dist/drivers/playwright/generated/keyboard.d.ts +103 -0
- package/dist/drivers/playwright/generated/keyboard.js +113 -0
- package/dist/drivers/playwright/generated/locator.d.ts +795 -0
- package/dist/drivers/playwright/generated/locator.js +974 -0
- package/dist/drivers/playwright/generated/mouse.d.ts +97 -0
- package/dist/drivers/playwright/generated/mouse.js +109 -0
- package/dist/drivers/playwright/generated/page.d.ts +762 -0
- package/dist/drivers/playwright/generated/page.js +988 -0
- package/dist/drivers/playwright/generated/touchscreen.d.ts +34 -0
- package/dist/drivers/playwright/generated/touchscreen.js +37 -0
- package/dist/drivers/playwright/generated/tracing.d.ts +78 -0
- package/dist/drivers/playwright/generated/tracing.js +80 -0
- package/dist/drivers/playwright/generated/worker.d.ts +53 -0
- package/dist/drivers/playwright/generated/worker.js +59 -0
- package/dist/drivers/playwright/index.d.ts +19 -0
- package/dist/drivers/playwright/index.js +20 -0
- package/dist/drivers/playwright/remote-base.d.ts +62 -0
- package/dist/drivers/playwright/remote-base.js +86 -0
- package/dist/drivers/playwright/types.d.ts +148 -0
- package/dist/drivers/playwright/types.js +8 -0
- package/dist/drivers/puppeteer/errors.d.ts +50 -0
- package/dist/drivers/puppeteer/errors.js +71 -0
- package/dist/drivers/puppeteer/event-emitter.d.ts +145 -0
- package/dist/drivers/puppeteer/event-emitter.js +259 -0
- package/dist/drivers/puppeteer/generated/accessibility.d.ts +77 -0
- package/dist/drivers/puppeteer/generated/accessibility.js +74 -0
- package/dist/drivers/puppeteer/generated/browser-context.d.ts +116 -0
- package/dist/drivers/puppeteer/generated/browser-context.js +168 -0
- package/dist/drivers/puppeteer/generated/browser.d.ts +169 -0
- package/dist/drivers/puppeteer/generated/browser.js +246 -0
- package/dist/drivers/puppeteer/generated/console-message.d.ts +54 -0
- package/dist/drivers/puppeteer/generated/console-message.js +69 -0
- package/dist/drivers/puppeteer/generated/coverage.d.ts +49 -0
- package/dist/drivers/puppeteer/generated/coverage.js +57 -0
- package/dist/drivers/puppeteer/generated/dialog.d.ts +46 -0
- package/dist/drivers/puppeteer/generated/dialog.js +60 -0
- package/dist/drivers/puppeteer/generated/element-handle.d.ts +261 -0
- package/dist/drivers/puppeteer/generated/element-handle.js +341 -0
- package/dist/drivers/puppeteer/generated/file-chooser.d.ts +34 -0
- package/dist/drivers/puppeteer/generated/file-chooser.js +43 -0
- package/dist/drivers/puppeteer/generated/frame.d.ts +221 -0
- package/dist/drivers/puppeteer/generated/frame.js +302 -0
- package/dist/drivers/puppeteer/generated/http-request.d.ts +195 -0
- package/dist/drivers/puppeteer/generated/http-request.js +243 -0
- package/dist/drivers/puppeteer/generated/http-response.d.ts +142 -0
- package/dist/drivers/puppeteer/generated/http-response.js +169 -0
- package/dist/drivers/puppeteer/generated/js-handle.d.ts +104 -0
- package/dist/drivers/puppeteer/generated/js-handle.js +125 -0
- package/dist/drivers/puppeteer/generated/keyboard.d.ts +79 -0
- package/dist/drivers/puppeteer/generated/keyboard.js +89 -0
- package/dist/drivers/puppeteer/generated/locator.d.ts +141 -0
- package/dist/drivers/puppeteer/generated/locator.js +164 -0
- package/dist/drivers/puppeteer/generated/mouse.d.ts +74 -0
- package/dist/drivers/puppeteer/generated/mouse.js +94 -0
- package/dist/drivers/puppeteer/generated/page.d.ts +604 -0
- package/dist/drivers/puppeteer/generated/page.js +776 -0
- package/dist/drivers/puppeteer/generated/target.d.ts +105 -0
- package/dist/drivers/puppeteer/generated/target.js +123 -0
- package/dist/drivers/puppeteer/generated/touchscreen.d.ts +87 -0
- package/dist/drivers/puppeteer/generated/touchscreen.js +103 -0
- package/dist/drivers/puppeteer/generated/tracing.d.ts +38 -0
- package/dist/drivers/puppeteer/generated/tracing.js +43 -0
- package/dist/drivers/puppeteer/generated/web-worker.d.ts +63 -0
- package/dist/drivers/puppeteer/generated/web-worker.js +73 -0
- package/dist/drivers/puppeteer/index.d.ts +21 -0
- package/dist/drivers/puppeteer/index.js +23 -0
- package/dist/drivers/puppeteer/remote-base.d.ts +57 -0
- package/dist/drivers/puppeteer/remote-base.js +79 -0
- package/dist/drivers/puppeteer/types.d.ts +178 -0
- package/dist/drivers/puppeteer/types.js +8 -0
- package/dist/drivers/selenium/driver.d.ts +28 -0
- package/dist/drivers/selenium/driver.js +169 -0
- package/dist/drivers/selenium/element.d.ts +34 -0
- package/dist/drivers/selenium/element.js +73 -0
- package/dist/drivers/selenium/index.d.ts +3 -0
- package/dist/drivers/selenium/index.js +5 -0
- package/dist/drivers/selenium/types.d.ts +2 -0
- package/dist/drivers/selenium/types.js +12 -0
- package/dist/drivers/stagehand/generated/context.d.ts +127 -0
- package/dist/drivers/stagehand/generated/context.js +153 -0
- package/dist/drivers/stagehand/generated/locator.d.ts +324 -0
- package/dist/drivers/stagehand/generated/locator.js +368 -0
- package/dist/drivers/stagehand/generated/page.d.ts +377 -0
- package/dist/drivers/stagehand/generated/page.js +439 -0
- package/dist/drivers/stagehand/generated/response.d.ts +197 -0
- package/dist/drivers/stagehand/generated/response.js +232 -0
- package/dist/drivers/stagehand/index.d.ts +5 -0
- package/dist/drivers/stagehand/index.js +8 -0
- package/dist/drivers/stagehand/types.d.ts +1 -0
- package/dist/drivers/stagehand/types.js +7 -0
- package/dist/errors.d.ts +47 -0
- package/dist/errors.js +157 -0
- package/dist/extensions/client.d.ts +47 -0
- package/dist/extensions/client.js +154 -0
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.js +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +23 -0
- package/dist/internal/dev-client.d.ts +5 -0
- package/dist/internal/dev-client.js +9 -0
- package/dist/internal/rpc-targets.d.ts +17 -0
- package/dist/internal/rpc-targets.js +58 -0
- package/dist/internal/serialization.d.ts +32 -0
- package/dist/internal/serialization.js +42 -0
- package/dist/internal/transport.d.ts +24 -0
- package/dist/internal/transport.js +29 -0
- package/dist/playwright.d.ts +1 -0
- package/dist/playwright.js +2 -0
- package/dist/puppeteer.d.ts +1 -0
- package/dist/puppeteer.js +2 -0
- package/dist/selenium.d.ts +1 -0
- package/dist/selenium.js +2 -0
- package/dist/stagehand.d.ts +1 -0
- package/dist/stagehand.js +2 -0
- package/dist/storage/client.d.ts +151 -0
- package/dist/storage/client.js +329 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.js +4 -0
- package/dist/telemetry.d.ts +18 -0
- package/dist/telemetry.js +93 -0
- package/dist/updates/client.d.ts +8 -0
- package/dist/updates/client.js +128 -0
- package/dist/updates/index.d.ts +1 -0
- package/dist/updates/index.js +1 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +88 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/logger.d.ts +27 -0
- package/dist/utils/logger.js +74 -0
- package/dist/utils/schema.d.ts +17 -0
- package/dist/utils/schema.js +31 -0
- package/dist/utils/url.d.ts +5 -0
- package/dist/utils/url.js +7 -0
- package/dist/vault/client.d.ts +43 -0
- package/dist/vault/client.js +123 -0
- package/dist/vault/index.d.ts +1 -0
- package/dist/vault/index.js +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +4 -0
- package/dist/workspaces/browser-runtime.d.ts +251 -0
- package/dist/workspaces/browser-runtime.js +1025 -0
- package/dist/workspaces/client.d.ts +48 -0
- package/dist/workspaces/client.js +222 -0
- package/dist/workspaces/index.d.ts +2 -0
- package/dist/workspaces/index.js +2 -0
- package/dist/workspaces/runtime-event-pump.d.ts +65 -0
- package/dist/workspaces/runtime-event-pump.js +716 -0
- package/package.json +56 -0
|
@@ -0,0 +1,988 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: packages/automation-spec/src/drivers/playwright/methods/
|
|
5
|
+
* Run `pnpm generate:playwright` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
import { serializeFunctionSource, } from '../../../internal/transport.js';
|
|
8
|
+
import { PlaywrightEventEmitter } from '../event-emitter.js';
|
|
9
|
+
import { RemotePlaywrightKeyboard } from './keyboard.js';
|
|
10
|
+
import { RemotePlaywrightMouse } from './mouse.js';
|
|
11
|
+
import { RemotePlaywrightTouchscreen } from './touchscreen.js';
|
|
12
|
+
import { RemotePlaywrightClock } from './clock.js';
|
|
13
|
+
import { RemotePlaywrightCoverage } from './coverage.js';
|
|
14
|
+
import { RemotePlaywrightAPIRequestContext } from './api-request-context.js';
|
|
15
|
+
/**
|
|
16
|
+
* RemotePlaywrightPage - Remote Playwright Page API over RPC.
|
|
17
|
+
*
|
|
18
|
+
* @see https://playwright.dev/docs/api/class-page
|
|
19
|
+
*/
|
|
20
|
+
export class RemotePlaywrightPage extends PlaywrightEventEmitter {
|
|
21
|
+
keyboard;
|
|
22
|
+
mouse;
|
|
23
|
+
touchscreen;
|
|
24
|
+
clock;
|
|
25
|
+
coverage;
|
|
26
|
+
request;
|
|
27
|
+
createElementHandle;
|
|
28
|
+
createFrame;
|
|
29
|
+
createLocator;
|
|
30
|
+
createJSHandle;
|
|
31
|
+
sendRpc;
|
|
32
|
+
_id;
|
|
33
|
+
constructor(sendRpc, id, createElementHandle, createFrame, createLocator, createJSHandle) {
|
|
34
|
+
super();
|
|
35
|
+
this.sendRpc = sendRpc;
|
|
36
|
+
this._id = id;
|
|
37
|
+
this.createElementHandle = createElementHandle;
|
|
38
|
+
this.createFrame = createFrame;
|
|
39
|
+
this.createLocator = createLocator;
|
|
40
|
+
this.createJSHandle = createJSHandle;
|
|
41
|
+
this.keyboard = new RemotePlaywrightKeyboard(this.rpc.bind(this));
|
|
42
|
+
this.mouse = new RemotePlaywrightMouse(this.rpc.bind(this));
|
|
43
|
+
this.touchscreen = new RemotePlaywrightTouchscreen(this.rpc.bind(this));
|
|
44
|
+
this.clock = new RemotePlaywrightClock(this.rpc.bind(this), id);
|
|
45
|
+
this.coverage = new RemotePlaywrightCoverage(this.rpc.bind(this), id);
|
|
46
|
+
this.request = new RemotePlaywrightAPIRequestContext(this.rpc.bind(this));
|
|
47
|
+
}
|
|
48
|
+
_isClosed = false;
|
|
49
|
+
_defaultTimeout = 30000;
|
|
50
|
+
_defaultNavigationTimeout = 30000;
|
|
51
|
+
_viewportSize = null;
|
|
52
|
+
/**
|
|
53
|
+
* Get the page ID.
|
|
54
|
+
*/
|
|
55
|
+
get id() {
|
|
56
|
+
return this._id;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Mark this page as closed (internal use).
|
|
60
|
+
*/
|
|
61
|
+
markClosed() {
|
|
62
|
+
this._isClosed = true;
|
|
63
|
+
}
|
|
64
|
+
rpc(method, args) {
|
|
65
|
+
if (this._isClosed) {
|
|
66
|
+
throw new Error('Page is closed');
|
|
67
|
+
}
|
|
68
|
+
return this.sendRpc(method, args);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if the page is closed.
|
|
72
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-closed
|
|
73
|
+
*/
|
|
74
|
+
isClosed() {
|
|
75
|
+
return this._isClosed;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get the viewport size.
|
|
79
|
+
* @see https://playwright.dev/docs/api/class-page#page-viewport-size
|
|
80
|
+
*/
|
|
81
|
+
viewportSize() {
|
|
82
|
+
return this._viewportSize;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Set the viewport size.
|
|
86
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-viewport-size
|
|
87
|
+
*/
|
|
88
|
+
async setViewportSize(viewportSize) {
|
|
89
|
+
await this.rpc('setViewportSize', [viewportSize]);
|
|
90
|
+
this._viewportSize = viewportSize;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Set the default navigation timeout.
|
|
94
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-default-navigation-timeout
|
|
95
|
+
*/
|
|
96
|
+
async setDefaultNavigationTimeout(timeout) {
|
|
97
|
+
await this.sendRpc('setDefaultNavigationTimeout', [timeout]);
|
|
98
|
+
this._defaultNavigationTimeout = timeout;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Set the default timeout.
|
|
102
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-default-timeout
|
|
103
|
+
*/
|
|
104
|
+
async setDefaultTimeout(timeout) {
|
|
105
|
+
await this.sendRpc('setDefaultTimeout', [timeout]);
|
|
106
|
+
this._defaultTimeout = timeout;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a locator for the given selector.
|
|
110
|
+
* @see https://playwright.dev/docs/api/class-page#page-locator
|
|
111
|
+
*/
|
|
112
|
+
locator(selector, options) {
|
|
113
|
+
return this.createLocator(selector);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Locate elements by their ARIA role.
|
|
117
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-role
|
|
118
|
+
*/
|
|
119
|
+
getByRole(role, options) {
|
|
120
|
+
// Construct selector from role and options
|
|
121
|
+
const selector = `role=${role}`;
|
|
122
|
+
return this.createLocator(selector);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Locate elements containing the given text.
|
|
126
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-text
|
|
127
|
+
*/
|
|
128
|
+
getByText(text, options) {
|
|
129
|
+
const textStr = text instanceof RegExp ? text.source : text;
|
|
130
|
+
const selector = `text=${textStr}`;
|
|
131
|
+
return this.createLocator(selector);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Locate form controls by their associated label.
|
|
135
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-label
|
|
136
|
+
*/
|
|
137
|
+
getByLabel(text, options) {
|
|
138
|
+
const textStr = text instanceof RegExp ? text.source : text;
|
|
139
|
+
const selector = `label=${textStr}`;
|
|
140
|
+
return this.createLocator(selector);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Locate input elements by placeholder text.
|
|
144
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-placeholder
|
|
145
|
+
*/
|
|
146
|
+
getByPlaceholder(text, options) {
|
|
147
|
+
const textStr = text instanceof RegExp ? text.source : text;
|
|
148
|
+
const selector = `[placeholder="${textStr}"]`;
|
|
149
|
+
return this.createLocator(selector);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Locate elements by alt text.
|
|
153
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-alt-text
|
|
154
|
+
*/
|
|
155
|
+
getByAltText(text, options) {
|
|
156
|
+
const textStr = text instanceof RegExp ? text.source : text;
|
|
157
|
+
const selector = `[alt="${textStr}"]`;
|
|
158
|
+
return this.createLocator(selector);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Locate elements by title attribute.
|
|
162
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-title
|
|
163
|
+
*/
|
|
164
|
+
getByTitle(text, options) {
|
|
165
|
+
const textStr = text instanceof RegExp ? text.source : text;
|
|
166
|
+
const selector = `[title="${textStr}"]`;
|
|
167
|
+
return this.createLocator(selector);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Locate elements by data-testid attribute.
|
|
171
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-by-test-id
|
|
172
|
+
*/
|
|
173
|
+
getByTestId(testId) {
|
|
174
|
+
const testIdStr = testId instanceof RegExp ? testId.source : testId;
|
|
175
|
+
const selector = `[data-testid="${testIdStr}"]`;
|
|
176
|
+
return this.createLocator(selector);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Create a frame locator.
|
|
180
|
+
* @see https://playwright.dev/docs/api/class-page#page-frame-locator
|
|
181
|
+
*/
|
|
182
|
+
frameLocator(selector) {
|
|
183
|
+
// Frame locators need special handling
|
|
184
|
+
return this.createLocator(`frame=${selector}`);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get the browser context.
|
|
188
|
+
* @see https://playwright.dev/docs/api/class-page#page-context
|
|
189
|
+
*/
|
|
190
|
+
context() {
|
|
191
|
+
// Would need BrowserContext type
|
|
192
|
+
throw new Error('context() not yet implemented in remote SDK');
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get the video object.
|
|
196
|
+
* @see https://playwright.dev/docs/api/class-page#page-video
|
|
197
|
+
*/
|
|
198
|
+
video() {
|
|
199
|
+
// Video recording needs special handling
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get all web workers in the page.
|
|
204
|
+
* @see https://playwright.dev/docs/api/class-page#page-workers
|
|
205
|
+
*/
|
|
206
|
+
workers() {
|
|
207
|
+
// Workers require state tracking on the server side
|
|
208
|
+
// For now, return empty array - full implementation would track workers via events
|
|
209
|
+
return [];
|
|
210
|
+
}
|
|
211
|
+
// ==========================================================================
|
|
212
|
+
// Locator Handlers
|
|
213
|
+
// ==========================================================================
|
|
214
|
+
/**
|
|
215
|
+
* Registers a handler that will be called when the specified locator becomes visible.
|
|
216
|
+
* @see https://playwright.dev/docs/api/class-page#page-add-locator-handler
|
|
217
|
+
*/
|
|
218
|
+
async addLocatorHandler(locator, handler, options) {
|
|
219
|
+
// Handler functions can't be serialized over RPC
|
|
220
|
+
// The server needs to track the locator and call back when it appears
|
|
221
|
+
await this.rpc('addLocatorHandler', [locator._chain, serializeFunctionSource(handler), options]);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Removes a previously added locator handler.
|
|
225
|
+
* @see https://playwright.dev/docs/api/class-page#page-remove-locator-handler
|
|
226
|
+
*/
|
|
227
|
+
async removeLocatorHandler(locator) {
|
|
228
|
+
await this.rpc('removeLocatorHandler', [locator._chain]);
|
|
229
|
+
}
|
|
230
|
+
// ==========================================================================
|
|
231
|
+
// Console and Errors
|
|
232
|
+
// ==========================================================================
|
|
233
|
+
/**
|
|
234
|
+
* Returns all console messages captured during the page lifecycle.
|
|
235
|
+
* @see https://playwright.dev/docs/api/class-consolemessage
|
|
236
|
+
*/
|
|
237
|
+
async consoleMessages() {
|
|
238
|
+
return this.rpc('consoleMessages', []);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Returns all page errors (uncaught exceptions) captured during the page lifecycle.
|
|
242
|
+
* @see https://playwright.dev/docs/api/class-page#page-event-page-error
|
|
243
|
+
*/
|
|
244
|
+
async pageErrors() {
|
|
245
|
+
const errors = await this.rpc('pageErrors', []);
|
|
246
|
+
return errors.map(e => {
|
|
247
|
+
const err = new Error(e.message);
|
|
248
|
+
if (e.name)
|
|
249
|
+
err.name = e.name;
|
|
250
|
+
if (e.stack)
|
|
251
|
+
err.stack = e.stack;
|
|
252
|
+
return err;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
// ==========================================================================
|
|
256
|
+
// Request Tracking
|
|
257
|
+
// ==========================================================================
|
|
258
|
+
/**
|
|
259
|
+
* Returns all requests made by the page since the last navigation.
|
|
260
|
+
* @see https://playwright.dev/docs/api/class-request
|
|
261
|
+
*/
|
|
262
|
+
async requests() {
|
|
263
|
+
return this.rpc('requests', []);
|
|
264
|
+
}
|
|
265
|
+
// ==========================================================================
|
|
266
|
+
// HAR Routing
|
|
267
|
+
// ==========================================================================
|
|
268
|
+
/**
|
|
269
|
+
* Serves network requests from a HAR (HTTP Archive) file.
|
|
270
|
+
* @see https://playwright.dev/docs/api/class-page#page-route-from-har
|
|
271
|
+
*/
|
|
272
|
+
async routeFromHAR(har, options) {
|
|
273
|
+
await this.rpc('routeFromHAR', [har, options]);
|
|
274
|
+
}
|
|
275
|
+
// ==========================================================================
|
|
276
|
+
// WebSocket Routing
|
|
277
|
+
// ==========================================================================
|
|
278
|
+
/**
|
|
279
|
+
* Route WebSocket connections matching the URL pattern.
|
|
280
|
+
* @see https://playwright.dev/docs/api/class-page#page-route-web-socket
|
|
281
|
+
*/
|
|
282
|
+
async routeWebSocket(url, handler) {
|
|
283
|
+
// URL patterns need special handling for RPC
|
|
284
|
+
const urlPattern = url instanceof RegExp ? url.source : typeof url === 'function' ? serializeFunctionSource(url) : url;
|
|
285
|
+
await this.rpc('routeWebSocket', [urlPattern, serializeFunctionSource(handler)]);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Navigate to a URL.
|
|
289
|
+
* @returns The main resource response, or null if navigating to about:blank.
|
|
290
|
+
*
|
|
291
|
+
* @see https://playwright.dev/docs/api/class-page#page-goto
|
|
292
|
+
*/
|
|
293
|
+
async goto(url, options) {
|
|
294
|
+
return this.rpc('goto', [url, options]);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Reload the page.
|
|
298
|
+
*
|
|
299
|
+
* @see https://playwright.dev/docs/api/class-page#page-reload
|
|
300
|
+
*/
|
|
301
|
+
async reload(options) {
|
|
302
|
+
return this.rpc('reload', [options]);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Navigate back in history.
|
|
306
|
+
*
|
|
307
|
+
* @see https://playwright.dev/docs/api/class-page#page-go-back
|
|
308
|
+
*/
|
|
309
|
+
async goBack(options) {
|
|
310
|
+
return this.rpc('goBack', [options]);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Navigate forward in history.
|
|
314
|
+
*
|
|
315
|
+
* @see https://playwright.dev/docs/api/class-page#page-go-forward
|
|
316
|
+
*/
|
|
317
|
+
async goForward(options) {
|
|
318
|
+
return this.rpc('goForward', [options]);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Wait for the main frame to navigate to the given URL.
|
|
322
|
+
*
|
|
323
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-url
|
|
324
|
+
*/
|
|
325
|
+
async waitForURL(url, options) {
|
|
326
|
+
await this.rpc('waitForURL', [url, options]);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Wait for the required load state to be reached.
|
|
330
|
+
*
|
|
331
|
+
* @remarks
|
|
332
|
+
* State can be 'load', 'domcontentloaded', or 'networkidle'.
|
|
333
|
+
*
|
|
334
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-load-state
|
|
335
|
+
*/
|
|
336
|
+
async waitForLoadState(state, options) {
|
|
337
|
+
await this.rpc('waitForLoadState', [state, options]);
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Wait for the main frame navigation and return the main resource response.
|
|
341
|
+
*
|
|
342
|
+
* @remarks
|
|
343
|
+
* Deprecated: This method is inherently racy. Use page.waitForURL() instead.
|
|
344
|
+
*
|
|
345
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-navigation
|
|
346
|
+
*/
|
|
347
|
+
async waitForNavigation(options) {
|
|
348
|
+
return this.rpc('waitForNavigation', [options]);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Get the page title.
|
|
352
|
+
*
|
|
353
|
+
* @see https://playwright.dev/docs/api/class-page#page-title
|
|
354
|
+
*/
|
|
355
|
+
async title() {
|
|
356
|
+
return this.rpc('title', []);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Get the current URL.
|
|
360
|
+
*
|
|
361
|
+
* @see https://playwright.dev/docs/api/class-page#page-url
|
|
362
|
+
*/
|
|
363
|
+
async url() {
|
|
364
|
+
return this.rpc('url', []);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Get the full HTML content of the page.
|
|
368
|
+
*
|
|
369
|
+
* @see https://playwright.dev/docs/api/class-page#page-content
|
|
370
|
+
*/
|
|
371
|
+
async content() {
|
|
372
|
+
return this.rpc('content', []);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Set the HTML content of the page.
|
|
376
|
+
*
|
|
377
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-content
|
|
378
|
+
*/
|
|
379
|
+
async setContent(html, options) {
|
|
380
|
+
await this.rpc('setContent', [html, options]);
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Click on an element matching the selector.
|
|
384
|
+
*
|
|
385
|
+
* @remarks
|
|
386
|
+
* Deprecated: Use locator.click() instead.
|
|
387
|
+
*
|
|
388
|
+
* @see https://playwright.dev/docs/api/class-page#page-click
|
|
389
|
+
*/
|
|
390
|
+
async click(selector, options) {
|
|
391
|
+
await this.rpc('click', [selector, options]);
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Double-click on an element matching the selector.
|
|
395
|
+
*
|
|
396
|
+
* @remarks
|
|
397
|
+
* Deprecated: Use locator.dblclick() instead.
|
|
398
|
+
*
|
|
399
|
+
* @see https://playwright.dev/docs/api/class-page#page-dblclick
|
|
400
|
+
*/
|
|
401
|
+
async dblclick(selector, options) {
|
|
402
|
+
await this.rpc('dblclick', [selector, options]);
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Fill an input element with the given value.
|
|
406
|
+
*
|
|
407
|
+
* @remarks
|
|
408
|
+
* Deprecated: Use locator.fill() instead.
|
|
409
|
+
*
|
|
410
|
+
* @see https://playwright.dev/docs/api/class-page#page-fill
|
|
411
|
+
*/
|
|
412
|
+
async fill(selector, value, options) {
|
|
413
|
+
await this.rpc('fill', [selector, value, options]);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Type text into an element (sends keydown, keypress/input, keyup events for each character).
|
|
417
|
+
*
|
|
418
|
+
* @remarks
|
|
419
|
+
* Deprecated: Use locator.pressSequentially() instead.
|
|
420
|
+
*
|
|
421
|
+
* @see https://playwright.dev/docs/api/class-page#page-type
|
|
422
|
+
*/
|
|
423
|
+
async type(selector, text, options) {
|
|
424
|
+
await this.rpc('type', [selector, text, options]);
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Focus an element and press a key combination.
|
|
428
|
+
*
|
|
429
|
+
* @remarks
|
|
430
|
+
* Deprecated: Use locator.press() instead.
|
|
431
|
+
*
|
|
432
|
+
* @see https://playwright.dev/docs/api/class-page#page-press
|
|
433
|
+
*/
|
|
434
|
+
async press(selector, key, options) {
|
|
435
|
+
await this.rpc('press', [selector, key, options]);
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Hover over an element.
|
|
439
|
+
*
|
|
440
|
+
* @remarks
|
|
441
|
+
* Deprecated: Use locator.hover() instead.
|
|
442
|
+
*
|
|
443
|
+
* @see https://playwright.dev/docs/api/class-page#page-hover
|
|
444
|
+
*/
|
|
445
|
+
async hover(selector, options) {
|
|
446
|
+
await this.rpc('hover', [selector, options]);
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Focus on an element.
|
|
450
|
+
*
|
|
451
|
+
* @remarks
|
|
452
|
+
* Deprecated: Use locator.focus() instead.
|
|
453
|
+
*
|
|
454
|
+
* @see https://playwright.dev/docs/api/class-page#page-focus
|
|
455
|
+
*/
|
|
456
|
+
async focus(selector, options) {
|
|
457
|
+
await this.rpc('focus', [selector, options]);
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Tap on an element (for touch devices).
|
|
461
|
+
*
|
|
462
|
+
* @remarks
|
|
463
|
+
* Deprecated: Use locator.tap() instead.
|
|
464
|
+
*
|
|
465
|
+
* @see https://playwright.dev/docs/api/class-page#page-tap
|
|
466
|
+
*/
|
|
467
|
+
async tap(selector, options) {
|
|
468
|
+
await this.rpc('tap', [selector, options]);
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Check a checkbox or radio button.
|
|
472
|
+
*
|
|
473
|
+
* @remarks
|
|
474
|
+
* Deprecated: Use locator.check() instead.
|
|
475
|
+
*
|
|
476
|
+
* @see https://playwright.dev/docs/api/class-page#page-check
|
|
477
|
+
*/
|
|
478
|
+
async check(selector, options) {
|
|
479
|
+
await this.rpc('check', [selector, options]);
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Uncheck a checkbox.
|
|
483
|
+
*
|
|
484
|
+
* @remarks
|
|
485
|
+
* Deprecated: Use locator.uncheck() instead.
|
|
486
|
+
*
|
|
487
|
+
* @see https://playwright.dev/docs/api/class-page#page-uncheck
|
|
488
|
+
*/
|
|
489
|
+
async uncheck(selector, options) {
|
|
490
|
+
await this.rpc('uncheck', [selector, options]);
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Set the checked state of a checkbox.
|
|
494
|
+
*
|
|
495
|
+
* @remarks
|
|
496
|
+
* Deprecated: Use locator.setChecked() instead.
|
|
497
|
+
*
|
|
498
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-checked
|
|
499
|
+
*/
|
|
500
|
+
async setChecked(selector, checked, options) {
|
|
501
|
+
await this.rpc('setChecked', [selector, checked, options]);
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Select one or more options in a <select> element.
|
|
505
|
+
*
|
|
506
|
+
* @remarks
|
|
507
|
+
* Deprecated: Use locator.selectOption() instead.
|
|
508
|
+
*
|
|
509
|
+
* @see https://playwright.dev/docs/api/class-page#page-select-option
|
|
510
|
+
*/
|
|
511
|
+
async selectOption(selector, values, options) {
|
|
512
|
+
return this.rpc('selectOption', [selector, values, options]);
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Set input files for a file input element.
|
|
516
|
+
*
|
|
517
|
+
* @remarks
|
|
518
|
+
* Deprecated: Use locator.setInputFiles() instead.
|
|
519
|
+
*
|
|
520
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-input-files
|
|
521
|
+
*/
|
|
522
|
+
async setInputFiles(selector, files, options) {
|
|
523
|
+
await this.rpc('setInputFiles', [selector, files, options]);
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Dispatch a DOM event on an element.
|
|
527
|
+
*
|
|
528
|
+
* @remarks
|
|
529
|
+
* Deprecated: Use locator.dispatchEvent() instead.
|
|
530
|
+
*
|
|
531
|
+
* @see https://playwright.dev/docs/api/class-page#page-dispatch-event
|
|
532
|
+
*/
|
|
533
|
+
async dispatchEvent(selector, type, eventInit, options) {
|
|
534
|
+
await this.rpc('dispatchEvent', [selector, type, eventInit, options]);
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Drag an element to another element.
|
|
538
|
+
*
|
|
539
|
+
* @see https://playwright.dev/docs/api/class-page#page-drag-and-drop
|
|
540
|
+
*/
|
|
541
|
+
async dragAndDrop(source, target, options) {
|
|
542
|
+
await this.rpc('dragAndDrop', [source, target, options]);
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Wait for a selector to appear in the DOM.
|
|
546
|
+
*
|
|
547
|
+
* @remarks
|
|
548
|
+
* Deprecated: Use locator-based methods or web assertions instead.
|
|
549
|
+
*
|
|
550
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-selector
|
|
551
|
+
*/
|
|
552
|
+
async waitForSelector(selector, options) {
|
|
553
|
+
const result = await this.rpc('waitForSelector', [selector, options]);
|
|
554
|
+
if (!result)
|
|
555
|
+
return null;
|
|
556
|
+
return this.createElementHandle(result.id);
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Wait for the specified timeout.
|
|
560
|
+
*
|
|
561
|
+
* @remarks
|
|
562
|
+
* Discouraged: Use time-based assertions or auto-waiting instead.
|
|
563
|
+
*
|
|
564
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-timeout
|
|
565
|
+
*/
|
|
566
|
+
async waitForTimeout(timeout) {
|
|
567
|
+
await this.rpc('waitForTimeout', [timeout]);
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Wait for a function to return a truthy value.
|
|
571
|
+
*
|
|
572
|
+
* @remarks
|
|
573
|
+
* Note: Returns a serialized handle reference. Full JSHandle support not yet available.
|
|
574
|
+
*
|
|
575
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-function
|
|
576
|
+
*/
|
|
577
|
+
async waitForFunction(pageFunction, arg, options) {
|
|
578
|
+
const _pageFunction = serializeFunctionSource(pageFunction);
|
|
579
|
+
return this.rpc('waitForFunction', [_pageFunction, arg, options]);
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* Wait for a specific event to fire.
|
|
583
|
+
*
|
|
584
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-event
|
|
585
|
+
*/
|
|
586
|
+
async waitForEvent(event, optionsOrPredicate) {
|
|
587
|
+
return this.rpc('waitForEvent', [event, optionsOrPredicate]);
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* Wait for a specific request.
|
|
591
|
+
*
|
|
592
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-request
|
|
593
|
+
*/
|
|
594
|
+
async waitForRequest(urlOrPredicate, options) {
|
|
595
|
+
return this.rpc('waitForRequest', [urlOrPredicate, options]);
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Wait for a specific response.
|
|
599
|
+
*
|
|
600
|
+
* @see https://playwright.dev/docs/api/class-page#page-wait-for-response
|
|
601
|
+
*/
|
|
602
|
+
async waitForResponse(urlOrPredicate, options) {
|
|
603
|
+
return this.rpc('waitForResponse', [urlOrPredicate, options]);
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Evaluate JavaScript in the page context.
|
|
607
|
+
*
|
|
608
|
+
* @see https://playwright.dev/docs/api/class-page#page-evaluate
|
|
609
|
+
*/
|
|
610
|
+
async evaluate(pageFunction, arg) {
|
|
611
|
+
const _pageFunction = serializeFunctionSource(pageFunction);
|
|
612
|
+
return this.rpc('evaluate', [_pageFunction, arg]);
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Evaluate JavaScript and return a handle to the result.
|
|
616
|
+
*
|
|
617
|
+
* @see https://playwright.dev/docs/api/class-page#page-evaluate-handle
|
|
618
|
+
*/
|
|
619
|
+
async evaluateHandle(pageFunction, arg) {
|
|
620
|
+
const _pageFunction = serializeFunctionSource(pageFunction);
|
|
621
|
+
const result = await this.rpc('evaluateHandle', [_pageFunction, arg]);
|
|
622
|
+
return this.createJSHandle(result.id);
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Query for a single element. Alias for page.querySelector().
|
|
626
|
+
*
|
|
627
|
+
* @remarks
|
|
628
|
+
* Deprecated: Use locator() instead.
|
|
629
|
+
*
|
|
630
|
+
* @see https://playwright.dev/docs/api/class-page#page-query-selector
|
|
631
|
+
*/
|
|
632
|
+
async $(selector) {
|
|
633
|
+
const result = await this.rpc('$', [selector]);
|
|
634
|
+
if (!result)
|
|
635
|
+
return null;
|
|
636
|
+
return this.createElementHandle(result.id);
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* Query for all matching elements. Alias for page.querySelectorAll().
|
|
640
|
+
*
|
|
641
|
+
* @remarks
|
|
642
|
+
* Deprecated: Use locator() instead.
|
|
643
|
+
*
|
|
644
|
+
* @see https://playwright.dev/docs/api/class-page#page-query-selector-all
|
|
645
|
+
*/
|
|
646
|
+
async $$(selector) {
|
|
647
|
+
const results = await this.rpc('$$', [selector]);
|
|
648
|
+
return results.map((r) => this.createElementHandle(r.id));
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Query for a single element.
|
|
652
|
+
*
|
|
653
|
+
* @remarks
|
|
654
|
+
* Deprecated: Use locator() instead.
|
|
655
|
+
*
|
|
656
|
+
* @see https://playwright.dev/docs/api/class-page#page-query-selector
|
|
657
|
+
*/
|
|
658
|
+
async querySelector(selector) {
|
|
659
|
+
const result = await this.rpc('querySelector', [selector]);
|
|
660
|
+
if (!result)
|
|
661
|
+
return null;
|
|
662
|
+
return this.createElementHandle(result.id);
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Query for all matching elements.
|
|
666
|
+
*
|
|
667
|
+
* @remarks
|
|
668
|
+
* Deprecated: Use locator() instead.
|
|
669
|
+
*
|
|
670
|
+
* @see https://playwright.dev/docs/api/class-page#page-query-selector-all
|
|
671
|
+
*/
|
|
672
|
+
async querySelectorAll(selector) {
|
|
673
|
+
const results = await this.rpc('querySelectorAll', [selector]);
|
|
674
|
+
return results.map((r) => this.createElementHandle(r.id));
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Find an element matching the selector and evaluate a function on it.
|
|
678
|
+
*
|
|
679
|
+
* @remarks
|
|
680
|
+
* Deprecated: This method does not wait for the element to pass actionability checks. Use locator.evaluate() instead.
|
|
681
|
+
*
|
|
682
|
+
* @see https://playwright.dev/docs/api/class-page#page-eval-on-selector
|
|
683
|
+
*/
|
|
684
|
+
async $eval(selector, pageFunction, arg) {
|
|
685
|
+
const _pageFunction = serializeFunctionSource(pageFunction);
|
|
686
|
+
return this.rpc('$eval', [selector, _pageFunction, arg]);
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Find all elements matching the selector and evaluate a function on the array of elements.
|
|
690
|
+
*
|
|
691
|
+
* @remarks
|
|
692
|
+
* Deprecated: This method does not wait for elements to pass actionability checks. Use locator.evaluateAll() instead.
|
|
693
|
+
*
|
|
694
|
+
* @see https://playwright.dev/docs/api/class-page#page-eval-on-selector-all
|
|
695
|
+
*/
|
|
696
|
+
async $$eval(selector, pageFunction, arg) {
|
|
697
|
+
const _pageFunction = serializeFunctionSource(pageFunction);
|
|
698
|
+
return this.rpc('$$eval', [selector, _pageFunction, arg]);
|
|
699
|
+
}
|
|
700
|
+
/**
|
|
701
|
+
* Take a screenshot of the page.
|
|
702
|
+
*
|
|
703
|
+
* @see https://playwright.dev/docs/api/class-page#page-screenshot
|
|
704
|
+
*/
|
|
705
|
+
async screenshot(options) {
|
|
706
|
+
const result = await this.rpc('screenshot', [options]);
|
|
707
|
+
return Buffer.from(result, 'base64');
|
|
708
|
+
}
|
|
709
|
+
/**
|
|
710
|
+
* Generate a PDF of the page (Chromium only).
|
|
711
|
+
*
|
|
712
|
+
* @see https://playwright.dev/docs/api/class-page#page-pdf
|
|
713
|
+
*/
|
|
714
|
+
async pdf(options) {
|
|
715
|
+
const result = await this.rpc('pdf', [options]);
|
|
716
|
+
return Buffer.from(result, 'base64');
|
|
717
|
+
}
|
|
718
|
+
/**
|
|
719
|
+
* Emulate media type, color scheme, etc.
|
|
720
|
+
*
|
|
721
|
+
* @see https://playwright.dev/docs/api/class-page#page-emulate-media
|
|
722
|
+
*/
|
|
723
|
+
async emulateMedia(options) {
|
|
724
|
+
await this.rpc('emulateMedia', [options]);
|
|
725
|
+
}
|
|
726
|
+
/**
|
|
727
|
+
* Get the main frame.
|
|
728
|
+
*
|
|
729
|
+
* @see https://playwright.dev/docs/api/class-page#page-main-frame
|
|
730
|
+
*/
|
|
731
|
+
async mainFrame() {
|
|
732
|
+
const result = await this.rpc('mainFrame', []);
|
|
733
|
+
return this.createFrame(result.id);
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Get all frames attached to the page.
|
|
737
|
+
*
|
|
738
|
+
* @see https://playwright.dev/docs/api/class-page#page-frames
|
|
739
|
+
*/
|
|
740
|
+
async frames() {
|
|
741
|
+
const results = await this.rpc('frames', []);
|
|
742
|
+
return results.map((r) => this.createFrame(r.id));
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Get a frame by name or URL.
|
|
746
|
+
*
|
|
747
|
+
* @see https://playwright.dev/docs/api/class-page#page-frame
|
|
748
|
+
*/
|
|
749
|
+
async frame(frameSelector) {
|
|
750
|
+
const result = await this.rpc('frame', [frameSelector]);
|
|
751
|
+
if (!result)
|
|
752
|
+
return null;
|
|
753
|
+
return this.createFrame(result.id);
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* Route requests matching the URL pattern.
|
|
757
|
+
*
|
|
758
|
+
* @see https://playwright.dev/docs/api/class-page#page-route
|
|
759
|
+
*/
|
|
760
|
+
async route(url, handler, options) {
|
|
761
|
+
await this.rpc('route', [url, handler, options]);
|
|
762
|
+
}
|
|
763
|
+
/**
|
|
764
|
+
* Remove a route.
|
|
765
|
+
*
|
|
766
|
+
* @see https://playwright.dev/docs/api/class-page#page-unroute
|
|
767
|
+
*/
|
|
768
|
+
async unroute(url, handler) {
|
|
769
|
+
await this.rpc('unroute', [url, handler]);
|
|
770
|
+
}
|
|
771
|
+
/**
|
|
772
|
+
* Remove all routes.
|
|
773
|
+
*
|
|
774
|
+
* @see https://playwright.dev/docs/api/class-page#page-unroute-all
|
|
775
|
+
*/
|
|
776
|
+
async unrouteAll(options) {
|
|
777
|
+
await this.rpc('unrouteAll', [options]);
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* Set extra HTTP headers for all requests.
|
|
781
|
+
*
|
|
782
|
+
* @see https://playwright.dev/docs/api/class-page#page-set-extra-http-headers
|
|
783
|
+
*/
|
|
784
|
+
async setExtraHTTPHeaders(headers) {
|
|
785
|
+
await this.rpc('setExtraHTTPHeaders', [headers]);
|
|
786
|
+
}
|
|
787
|
+
/**
|
|
788
|
+
* Close the page.
|
|
789
|
+
*
|
|
790
|
+
* @see https://playwright.dev/docs/api/class-page#page-close
|
|
791
|
+
*/
|
|
792
|
+
async close(options) {
|
|
793
|
+
await this.rpc('close', [options]);
|
|
794
|
+
this.markClosed();
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* Bring page to front (activate tab).
|
|
798
|
+
*
|
|
799
|
+
* @see https://playwright.dev/docs/api/class-page#page-bring-to-front
|
|
800
|
+
*/
|
|
801
|
+
async bringToFront() {
|
|
802
|
+
await this.rpc('bringToFront', []);
|
|
803
|
+
}
|
|
804
|
+
/**
|
|
805
|
+
* Add a script to evaluate before page scripts run.
|
|
806
|
+
*
|
|
807
|
+
* @see https://playwright.dev/docs/api/class-page#page-add-init-script
|
|
808
|
+
*/
|
|
809
|
+
async addInitScript(script, arg) {
|
|
810
|
+
const _script = serializeFunctionSource(script);
|
|
811
|
+
await this.rpc('addInitScript', [_script, arg]);
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* Add a <script> tag to the page.
|
|
815
|
+
*
|
|
816
|
+
* @see https://playwright.dev/docs/api/class-page#page-add-script-tag
|
|
817
|
+
*/
|
|
818
|
+
async addScriptTag(options) {
|
|
819
|
+
const result = await this.rpc('addScriptTag', [options]);
|
|
820
|
+
return this.createElementHandle(result.id);
|
|
821
|
+
}
|
|
822
|
+
/**
|
|
823
|
+
* Add a <style> tag to the page.
|
|
824
|
+
*
|
|
825
|
+
* @see https://playwright.dev/docs/api/class-page#page-add-style-tag
|
|
826
|
+
*/
|
|
827
|
+
async addStyleTag(options) {
|
|
828
|
+
const result = await this.rpc('addStyleTag', [options]);
|
|
829
|
+
return this.createElementHandle(result.id);
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Expose a binding to the page (with source info).
|
|
833
|
+
*
|
|
834
|
+
* @see https://playwright.dev/docs/api/class-page#page-expose-binding
|
|
835
|
+
*/
|
|
836
|
+
async exposeBinding(name, callback, options) {
|
|
837
|
+
const _callback = serializeFunctionSource(callback);
|
|
838
|
+
await this.rpc('exposeBinding', [name, _callback, options]);
|
|
839
|
+
}
|
|
840
|
+
/**
|
|
841
|
+
* Check if an element is visible.
|
|
842
|
+
*
|
|
843
|
+
* @remarks
|
|
844
|
+
* Deprecated: Use locator.isVisible() instead.
|
|
845
|
+
*
|
|
846
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-visible
|
|
847
|
+
*/
|
|
848
|
+
async isVisible(selector, options) {
|
|
849
|
+
return this.rpc('isVisible', [selector, options]);
|
|
850
|
+
}
|
|
851
|
+
/**
|
|
852
|
+
* Check if an element is hidden.
|
|
853
|
+
*
|
|
854
|
+
* @remarks
|
|
855
|
+
* Deprecated: Use locator.isHidden() instead.
|
|
856
|
+
*
|
|
857
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-hidden
|
|
858
|
+
*/
|
|
859
|
+
async isHidden(selector, options) {
|
|
860
|
+
return this.rpc('isHidden', [selector, options]);
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Check if an element is enabled.
|
|
864
|
+
*
|
|
865
|
+
* @remarks
|
|
866
|
+
* Deprecated: Use locator.isEnabled() instead.
|
|
867
|
+
*
|
|
868
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-enabled
|
|
869
|
+
*/
|
|
870
|
+
async isEnabled(selector, options) {
|
|
871
|
+
return this.rpc('isEnabled', [selector, options]);
|
|
872
|
+
}
|
|
873
|
+
/**
|
|
874
|
+
* Check if an element is disabled.
|
|
875
|
+
*
|
|
876
|
+
* @remarks
|
|
877
|
+
* Deprecated: Use locator.isDisabled() instead.
|
|
878
|
+
*
|
|
879
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-disabled
|
|
880
|
+
*/
|
|
881
|
+
async isDisabled(selector, options) {
|
|
882
|
+
return this.rpc('isDisabled', [selector, options]);
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* Check if an element is editable.
|
|
886
|
+
*
|
|
887
|
+
* @remarks
|
|
888
|
+
* Deprecated: Use locator.isEditable() instead.
|
|
889
|
+
*
|
|
890
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-editable
|
|
891
|
+
*/
|
|
892
|
+
async isEditable(selector, options) {
|
|
893
|
+
return this.rpc('isEditable', [selector, options]);
|
|
894
|
+
}
|
|
895
|
+
/**
|
|
896
|
+
* Check if a checkbox is checked.
|
|
897
|
+
*
|
|
898
|
+
* @remarks
|
|
899
|
+
* Deprecated: Use locator.isChecked() instead.
|
|
900
|
+
*
|
|
901
|
+
* @see https://playwright.dev/docs/api/class-page#page-is-checked
|
|
902
|
+
*/
|
|
903
|
+
async isChecked(selector, options) {
|
|
904
|
+
return this.rpc('isChecked', [selector, options]);
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* Get an attribute value from an element.
|
|
908
|
+
*
|
|
909
|
+
* @remarks
|
|
910
|
+
* Deprecated: Use locator.getAttribute() instead.
|
|
911
|
+
*
|
|
912
|
+
* @see https://playwright.dev/docs/api/class-page#page-get-attribute
|
|
913
|
+
*/
|
|
914
|
+
async getAttribute(selector, name, options) {
|
|
915
|
+
return this.rpc('getAttribute', [selector, name, options]);
|
|
916
|
+
}
|
|
917
|
+
/**
|
|
918
|
+
* Get the text content of an element.
|
|
919
|
+
*
|
|
920
|
+
* @remarks
|
|
921
|
+
* Deprecated: Use locator.textContent() instead.
|
|
922
|
+
*
|
|
923
|
+
* @see https://playwright.dev/docs/api/class-page#page-text-content
|
|
924
|
+
*/
|
|
925
|
+
async textContent(selector, options) {
|
|
926
|
+
return this.rpc('textContent', [selector, options]);
|
|
927
|
+
}
|
|
928
|
+
/**
|
|
929
|
+
* Get the inner text of an element.
|
|
930
|
+
*
|
|
931
|
+
* @remarks
|
|
932
|
+
* Deprecated: Use locator.innerText() instead.
|
|
933
|
+
*
|
|
934
|
+
* @see https://playwright.dev/docs/api/class-page#page-inner-text
|
|
935
|
+
*/
|
|
936
|
+
async innerText(selector, options) {
|
|
937
|
+
return this.rpc('innerText', [selector, options]);
|
|
938
|
+
}
|
|
939
|
+
/**
|
|
940
|
+
* Get the inner HTML of an element.
|
|
941
|
+
*
|
|
942
|
+
* @remarks
|
|
943
|
+
* Deprecated: Use locator.innerHTML() instead.
|
|
944
|
+
*
|
|
945
|
+
* @see https://playwright.dev/docs/api/class-page#page-inner-html
|
|
946
|
+
*/
|
|
947
|
+
async innerHTML(selector, options) {
|
|
948
|
+
return this.rpc('innerHTML', [selector, options]);
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* Get the input value of an element.
|
|
952
|
+
*
|
|
953
|
+
* @remarks
|
|
954
|
+
* Deprecated: Use locator.inputValue() instead.
|
|
955
|
+
*
|
|
956
|
+
* @see https://playwright.dev/docs/api/class-page#page-input-value
|
|
957
|
+
*/
|
|
958
|
+
async inputValue(selector, options) {
|
|
959
|
+
return this.rpc('inputValue', [selector, options]);
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* Pause script execution (for debugging).
|
|
963
|
+
*
|
|
964
|
+
* @see https://playwright.dev/docs/api/class-page#page-pause
|
|
965
|
+
*/
|
|
966
|
+
async pause() {
|
|
967
|
+
await this.rpc('pause', []);
|
|
968
|
+
}
|
|
969
|
+
/**
|
|
970
|
+
* Get the page that opened this page (via window.open).
|
|
971
|
+
*
|
|
972
|
+
* @see https://playwright.dev/docs/api/class-page#page-opener
|
|
973
|
+
*/
|
|
974
|
+
async opener() {
|
|
975
|
+
return this.rpc('opener', []);
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* Request garbage collection in the page context.
|
|
979
|
+
*
|
|
980
|
+
* @remarks
|
|
981
|
+
* Note: This method is only available in Chromium-based browsers.
|
|
982
|
+
*
|
|
983
|
+
* @see https://playwright.dev/docs/api/class-page#page-request-gc
|
|
984
|
+
*/
|
|
985
|
+
async requestGC() {
|
|
986
|
+
await this.rpc('requestGC', []);
|
|
987
|
+
}
|
|
988
|
+
}
|