selenium-webdriver 4.49.0 → 4.50.0
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/CHANGES.md +16 -0
- package/bidi/generated/bluetooth.d.ts +199 -37
- package/bidi/generated/bluetooth.js +212 -106
- package/bidi/generated/browser.d.ts +81 -28
- package/bidi/generated/browser.js +97 -69
- package/bidi/generated/browsing_context.d.ts +269 -87
- package/bidi/generated/browsing_context.js +328 -241
- package/bidi/generated/common.d.ts +105 -21
- package/bidi/generated/common.js +64 -15
- package/bidi/generated/digital_credentials.d.ts +41 -0
- package/bidi/generated/digital_credentials.js +54 -0
- package/bidi/generated/emulation.d.ts +347 -77
- package/bidi/generated/emulation.js +262 -101
- package/bidi/generated/input.d.ts +63 -35
- package/bidi/generated/input.js +77 -51
- package/bidi/generated/log.d.ts +39 -18
- package/bidi/generated/log.js +23 -43
- package/bidi/generated/network.d.ts +248 -76
- package/bidi/generated/network.js +247 -181
- package/bidi/generated/permissions.d.ts +22 -4
- package/bidi/generated/permissions.js +31 -17
- package/bidi/generated/script.d.ts +166 -70
- package/bidi/generated/script.js +203 -116
- package/bidi/generated/session.d.ts +76 -36
- package/bidi/generated/session.js +81 -48
- package/bidi/generated/speculation.d.ts +15 -5
- package/bidi/generated/speculation.js +20 -16
- package/bidi/generated/storage.d.ts +41 -17
- package/bidi/generated/storage.js +58 -40
- package/bidi/generated/user_agent_client_hints.d.ts +25 -13
- package/bidi/generated/user_agent_client_hints.js +29 -18
- package/bidi/generated/webextension.d.ts +24 -10
- package/bidi/generated/webextension.js +39 -25
- package/bidi/serialization/enum.js +6 -3
- package/bidi/serialization/record.js +34 -29
- package/bin/linux-arm64/selenium-manager +0 -0
- package/bin/linux-x86_64/selenium-manager +0 -0
- package/bin/macos/selenium-manager +0 -0
- package/bin/selenium-manager-THIRD-PARTY-NOTICES.txt +74 -43
- package/bin/selenium-manager.cdx.json +421 -421
- package/bin/windows/selenium-manager.exe +0 -0
- package/eslint.config.js +2 -1
- package/firefox.js +7 -104
- package/index.js +8 -0
- package/lib/atoms/find-elements.js +14 -2
- package/package.json +9 -9
- package/remote/index.js +12 -3
- package/remote/util.js +5 -5
- package/testing/index.js +84 -1
|
@@ -17,91 +17,119 @@
|
|
|
17
17
|
// under the License.
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.Browser = void 0;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
require("./common.js");
|
|
21
|
+
require("./session.js");
|
|
22
|
+
const record_js_1 = require("../serialization/record.js");
|
|
23
|
+
const enum_js_1 = require("../serialization/enum.js");
|
|
24
|
+
const union_js_1 = require("../serialization/union.js");
|
|
25
|
+
const domain_js_1 = require("../domain.js");
|
|
26
|
+
(0, record_js_1.defineAlias)('browser.ClientWindow', { "primitive": "string" });
|
|
27
|
+
const BrowserClientWindowInfo = (0, record_js_1.defineRecord)('browser.ClientWindowInfo', [{ "name": "active", "wire": "active", "required": true, "type": { "primitive": "boolean" } }, { "name": "clientWindow", "wire": "clientWindow", "required": true, "type": { "ref": "browser.ClientWindow" } }, { "name": "height", "wire": "height", "required": true, "type": { "ref": "js-uint" } }, { "name": "state", "wire": "state", "required": true, "type": { "ref": "browser.ClientWindowInfoState" } }, { "name": "width", "wire": "width", "required": true, "type": { "ref": "js-uint" } }, { "name": "x", "wire": "x", "required": true, "type": { "ref": "js-int" } }, { "name": "y", "wire": "y", "required": true, "type": { "ref": "js-int" } }]);
|
|
28
|
+
(0, record_js_1.defineAlias)('browser.UserContext', { "primitive": "string" });
|
|
29
|
+
const BrowserUserContextInfo = (0, record_js_1.defineRecord)('browser.UserContextInfo', [{ "name": "userContext", "wire": "userContext", "required": true, "type": { "ref": "browser.UserContext" } }]);
|
|
30
|
+
const BrowserClose = (0, record_js_1.defineRecord)('browser.Close', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.close" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "EmptyParams" } }]);
|
|
31
|
+
(0, record_js_1.defineAlias)('browser.CloseResult', { "ref": "EmptyResult" });
|
|
32
|
+
const BrowserCreateUserContext = (0, record_js_1.defineRecord)('browser.CreateUserContext', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.createUserContext" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "browser.CreateUserContextParameters" } }]);
|
|
33
|
+
const BrowserCreateUserContextParameters = (0, record_js_1.defineRecord)('browser.CreateUserContextParameters', [{ "name": "acceptInsecureCerts", "wire": "acceptInsecureCerts", "required": false, "type": { "primitive": "boolean" } }, { "name": "proxy", "wire": "proxy", "required": false, "type": { "ref": "session.ProxyConfiguration" } }, { "name": "unhandledPromptBehavior", "wire": "unhandledPromptBehavior", "required": false, "type": { "ref": "session.UserPromptHandler" } }]);
|
|
34
|
+
(0, record_js_1.defineAlias)('browser.CreateUserContextResult', { "ref": "browser.UserContextInfo" });
|
|
35
|
+
const BrowserGetClientWindows = (0, record_js_1.defineRecord)('browser.GetClientWindows', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.getClientWindows" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "EmptyParams" } }]);
|
|
36
|
+
const BrowserGetClientWindowsResult = (0, record_js_1.defineRecord)('browser.GetClientWindowsResult', [{ "name": "clientWindows", "wire": "clientWindows", "required": true, "type": { "list": { "ref": "browser.ClientWindowInfo" } } }]);
|
|
37
|
+
const BrowserGetUserContexts = (0, record_js_1.defineRecord)('browser.GetUserContexts', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.getUserContexts" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "EmptyParams" } }]);
|
|
38
|
+
const BrowserGetUserContextsResult = (0, record_js_1.defineRecord)('browser.GetUserContextsResult', [{ "name": "userContexts", "wire": "userContexts", "required": true, "type": { "list": { "ref": "browser.UserContextInfo" } } }]);
|
|
39
|
+
const BrowserRemoveUserContext = (0, record_js_1.defineRecord)('browser.RemoveUserContext', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.removeUserContext" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "browser.RemoveUserContextParameters" } }]);
|
|
40
|
+
const BrowserRemoveUserContextParameters = (0, record_js_1.defineRecord)('browser.RemoveUserContextParameters', [{ "name": "userContext", "wire": "userContext", "required": true, "type": { "ref": "browser.UserContext" } }]);
|
|
41
|
+
(0, record_js_1.defineAlias)('browser.RemoveUserContextResult', { "ref": "EmptyResult" });
|
|
42
|
+
const BrowserSetClientWindowState = (0, record_js_1.defineRecord)('browser.SetClientWindowState', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.setClientWindowState" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "browser.SetClientWindowStateParameters" } }]);
|
|
43
|
+
const BrowserSetClientWindowStateParametersUnion = (0, union_js_1.defineUnion)('browser.SetClientWindowStateParameters', { "by": "state", "variants": [{ "value": "normal", "ref": "browser.SetClientWindowStateParameters_ClientWindowRectState" }], "default": "browser.SetClientWindowStateParameters_ClientWindowNamedState" }, { "objectOnly": true });
|
|
44
|
+
(0, record_js_1.defineAlias)('browser.SetClientWindowStateResult', { "ref": "browser.ClientWindowInfo" });
|
|
45
|
+
const BrowserSetDownloadBehavior = (0, record_js_1.defineRecord)('browser.SetDownloadBehavior', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "browser.setDownloadBehavior" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "browser.SetDownloadBehaviorParameters" } }]);
|
|
46
|
+
const BrowserSetDownloadBehaviorParameters = (0, record_js_1.defineRecord)('browser.SetDownloadBehaviorParameters', [{ "name": "downloadBehavior", "wire": "downloadBehavior", "required": true, "type": { "ref": "browser.DownloadBehavior", "nullable": true } }, { "name": "userContexts", "wire": "userContexts", "required": false, "type": { "list": { "ref": "browser.UserContext" } } }]);
|
|
47
|
+
const BrowserDownloadBehaviorUnion = (0, union_js_1.defineUnion)('browser.DownloadBehavior', { "by": "type", "variants": [{ "value": "allowed", "ref": "browser.DownloadBehavior_Allowed" }, { "value": "denied", "ref": "browser.DownloadBehavior_Denied" }] }, { "objectOnly": true });
|
|
48
|
+
(0, record_js_1.defineAlias)('browser.SetDownloadBehaviorResult', { "ref": "EmptyResult" });
|
|
49
|
+
const BrowserClientWindowInfoStateEnum = (0, enum_js_1.defineEnum)('browser.ClientWindowInfoState', ["fullscreen", "maximized", "minimized", "normal"]);
|
|
50
|
+
const BrowserClientWindowNamedStateStateEnum = (0, enum_js_1.defineEnum)('browser.ClientWindowNamedStateState', ["fullscreen", "maximized", "minimized"]);
|
|
51
|
+
const BrowserSetClientWindowStateParameters_ClientWindowNamedState = (0, record_js_1.defineRecord)('browser.SetClientWindowStateParameters_ClientWindowNamedState', [{ "name": "clientWindow", "wire": "clientWindow", "required": true, "type": { "ref": "browser.ClientWindow" } }, { "name": "state", "wire": "state", "required": true, "type": { "ref": "browser.ClientWindowNamedStateState" } }]);
|
|
52
|
+
const BrowserSetClientWindowStateParameters_ClientWindowRectState = (0, record_js_1.defineRecord)('browser.SetClientWindowStateParameters_ClientWindowRectState', [{ "name": "clientWindow", "wire": "clientWindow", "required": true, "type": { "ref": "browser.ClientWindow" } }, { "name": "state", "wire": "state", "required": true, "type": { "const": "normal" } }, { "name": "width", "wire": "width", "required": false, "type": { "ref": "js-uint" } }, { "name": "height", "wire": "height", "required": false, "type": { "ref": "js-uint" } }, { "name": "x", "wire": "x", "required": false, "type": { "ref": "js-int" } }, { "name": "y", "wire": "y", "required": false, "type": { "ref": "js-int" } }]);
|
|
53
|
+
const BrowserDownloadBehavior_Allowed = (0, record_js_1.defineRecord)('browser.DownloadBehavior_Allowed', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "allowed" } }, { "name": "destinationFolder", "wire": "destinationFolder", "required": true, "type": { "primitive": "string" } }]);
|
|
54
|
+
const BrowserDownloadBehavior_Denied = (0, record_js_1.defineRecord)('browser.DownloadBehavior_Denied', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "denied" } }]);
|
|
26
55
|
// --- Implementation ---
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
56
|
+
/**
|
|
57
|
+
* This is an unsupported API. No compatibility guarantees are provided.
|
|
58
|
+
* It tracks the W3C WebDriver BiDi specification directly. As the specification
|
|
59
|
+
* evolves, this API will change or be removed without prior notice.
|
|
60
|
+
*/
|
|
61
|
+
class Browser extends domain_js_1.Domain {
|
|
31
62
|
static async create(driver) {
|
|
32
|
-
|
|
33
|
-
if (!caps.get('webSocketUrl')) {
|
|
34
|
-
throw new Error('WebDriver instance must support BiDi protocol');
|
|
35
|
-
}
|
|
36
|
-
const bidi = await driver.getBidi();
|
|
37
|
-
return new Browser(bidi);
|
|
63
|
+
return new Browser(await domain_js_1.Domain.connect(driver), domain_js_1.DOMAIN_TOKEN);
|
|
38
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* @returns {Promise<void>}
|
|
67
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-close
|
|
68
|
+
*/
|
|
39
69
|
async close() {
|
|
40
|
-
|
|
41
|
-
method: 'browser.close',
|
|
42
|
-
params: {},
|
|
43
|
-
});
|
|
44
|
-
if (response['type'] === 'error') {
|
|
45
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
46
|
-
}
|
|
70
|
+
await this.send('browser.close', {});
|
|
47
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* @param {BrowserCreateUserContextParameters} params
|
|
74
|
+
* @param {boolean} [params.acceptInsecureCerts]
|
|
75
|
+
* @param {SessionProxyConfiguration} [params.proxy]
|
|
76
|
+
* @param {SessionUserPromptHandler} [params.unhandledPromptBehavior]
|
|
77
|
+
* @returns {Promise<BrowserCreateUserContextResult>}
|
|
78
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-createUserContext
|
|
79
|
+
*/
|
|
48
80
|
async createUserContext(params) {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
});
|
|
53
|
-
if (response['type'] === 'error') {
|
|
54
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
55
|
-
}
|
|
56
|
-
return response.result;
|
|
81
|
+
const validatedParams = new BrowserCreateUserContextParameters(params);
|
|
82
|
+
const result = await this.send('browser.createUserContext', validatedParams);
|
|
83
|
+
return BrowserUserContextInfo.fromWire(result);
|
|
57
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* @returns {Promise<BrowserGetClientWindowsResult>}
|
|
87
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-getClientWindows
|
|
88
|
+
*/
|
|
58
89
|
async getClientWindows() {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
params: {},
|
|
62
|
-
});
|
|
63
|
-
if (response['type'] === 'error') {
|
|
64
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
65
|
-
}
|
|
66
|
-
return response.result;
|
|
90
|
+
const result = await this.send('browser.getClientWindows', {});
|
|
91
|
+
return BrowserGetClientWindowsResult.fromWire(result);
|
|
67
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* @returns {Promise<BrowserGetUserContextsResult>}
|
|
95
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-getUserContexts
|
|
96
|
+
*/
|
|
68
97
|
async getUserContexts() {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
params: {},
|
|
72
|
-
});
|
|
73
|
-
if (response['type'] === 'error') {
|
|
74
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
75
|
-
}
|
|
76
|
-
return response.result;
|
|
98
|
+
const result = await this.send('browser.getUserContexts', {});
|
|
99
|
+
return BrowserGetUserContextsResult.fromWire(result);
|
|
77
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* @param {BrowserRemoveUserContextParameters} params
|
|
103
|
+
* @param {BrowserUserContext} params.userContext
|
|
104
|
+
* @returns {Promise<void>}
|
|
105
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-removeUserContext
|
|
106
|
+
*/
|
|
78
107
|
async removeUserContext(params) {
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
params: params,
|
|
82
|
-
});
|
|
83
|
-
if (response['type'] === 'error') {
|
|
84
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
85
|
-
}
|
|
108
|
+
const validatedParams = new BrowserRemoveUserContextParameters(params);
|
|
109
|
+
await this.send('browser.removeUserContext', validatedParams);
|
|
86
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* @param {BrowserSetClientWindowStateParameters} params
|
|
113
|
+
* @returns {Promise<BrowserSetClientWindowStateResult>}
|
|
114
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-setClientWindowState
|
|
115
|
+
*/
|
|
87
116
|
async setClientWindowState(params) {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
});
|
|
92
|
-
if (response['type'] === 'error') {
|
|
93
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
94
|
-
}
|
|
95
|
-
return response.result;
|
|
117
|
+
const validatedParams = BrowserSetClientWindowStateParametersUnion.build(params);
|
|
118
|
+
const result = await this.send('browser.setClientWindowState', validatedParams);
|
|
119
|
+
return BrowserClientWindowInfo.fromWire(result);
|
|
96
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* @param {BrowserSetDownloadBehaviorParameters} params
|
|
123
|
+
* @param {BrowserDownloadBehavior | null} params.downloadBehavior
|
|
124
|
+
* @param {Array<BrowserUserContext>} [params.userContexts]
|
|
125
|
+
* @returns {Promise<void>}
|
|
126
|
+
* @see https://w3c.github.io/webdriver-bidi/#command-browser-setDownloadBehavior
|
|
127
|
+
*/
|
|
97
128
|
async setDownloadBehavior(params) {
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
params: params,
|
|
101
|
-
});
|
|
102
|
-
if (response['type'] === 'error') {
|
|
103
|
-
throw new Error(`${response['error']}: ${response['message']}`);
|
|
104
|
-
}
|
|
129
|
+
const validatedParams = new BrowserSetDownloadBehaviorParameters(params);
|
|
130
|
+
await this.send('browser.setDownloadBehavior', validatedParams);
|
|
105
131
|
}
|
|
106
132
|
}
|
|
107
133
|
exports.Browser = Browser;
|
|
134
|
+
Browser.ClientWindowInfoState = Object.freeze({ FULLSCREEN: "fullscreen", MAXIMIZED: "maximized", MINIMIZED: "minimized", NORMAL: "normal" });
|
|
135
|
+
Browser.ClientWindowNamedStateState = Object.freeze({ FULLSCREEN: "fullscreen", MAXIMIZED: "maximized", MINIMIZED: "minimized" });
|