selenium-webdriver
Version:
The official WebDriver JavaScript bindings from the Selenium project
108 lines (107 loc) • 14.8 kB
JavaScript
"use strict";
// Licensed to the Software Freedom Conservancy (SFC) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The SFC licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.Input = void 0;
require("./browser.js");
require("./browsing_context.js");
require("./common.js");
require("./script.js");
const record_js_1 = require("../serialization/record.js");
const enum_js_1 = require("../serialization/enum.js");
const union_js_1 = require("../serialization/union.js");
const domain_js_1 = require("../domain.js");
const InputElementOrigin = (0, record_js_1.defineRecord)('input.ElementOrigin', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "element" } }, { "name": "element", "wire": "element", "required": true, "type": { "ref": "script.SharedReference" } }]);
const InputPerformActions = (0, record_js_1.defineRecord)('input.PerformActions', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "input.performActions" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "input.PerformActionsParameters" } }]);
const InputPerformActionsParameters = (0, record_js_1.defineRecord)('input.PerformActionsParameters', [{ "name": "context", "wire": "context", "required": true, "type": { "ref": "browsingContext.BrowsingContext" } }, { "name": "actions", "wire": "actions", "required": true, "type": { "list": { "ref": "input.SourceActions" } } }]);
const InputSourceActionsUnion = (0, union_js_1.defineUnion)('input.SourceActions', { "by": "type", "variants": [{ "value": "none", "ref": "input.NoneSourceActions" }, { "value": "key", "ref": "input.KeySourceActions" }, { "value": "pointer", "ref": "input.PointerSourceActions" }, { "value": "wheel", "ref": "input.WheelSourceActions" }] }, { "objectOnly": true });
const InputNoneSourceActions = (0, record_js_1.defineRecord)('input.NoneSourceActions', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "none" } }, { "name": "id", "wire": "id", "required": true, "type": { "primitive": "string" } }, { "name": "actions", "wire": "actions", "required": true, "type": { "list": { "ref": "input.NoneSourceAction" } } }]);
(0, record_js_1.defineAlias)('input.NoneSourceAction', { "ref": "input.PauseAction" });
const InputKeySourceActions = (0, record_js_1.defineRecord)('input.KeySourceActions', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "key" } }, { "name": "id", "wire": "id", "required": true, "type": { "primitive": "string" } }, { "name": "actions", "wire": "actions", "required": true, "type": { "list": { "ref": "input.KeySourceAction" } } }]);
const InputKeySourceActionUnion = (0, union_js_1.defineUnion)('input.KeySourceAction', { "by": "type", "variants": [{ "value": "pause", "ref": "input.PauseAction" }, { "value": "keyDown", "ref": "input.KeyDownAction" }, { "value": "keyUp", "ref": "input.KeyUpAction" }] }, { "objectOnly": true });
const InputPointerSourceActions = (0, record_js_1.defineRecord)('input.PointerSourceActions', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "pointer" } }, { "name": "id", "wire": "id", "required": true, "type": { "primitive": "string" } }, { "name": "parameters", "wire": "parameters", "required": false, "type": { "ref": "input.PointerParameters" } }, { "name": "actions", "wire": "actions", "required": true, "type": { "list": { "ref": "input.PointerSourceAction" } } }]);
const InputPointerTypeEnum = (0, enum_js_1.defineEnum)('input.PointerType', ["mouse", "pen", "touch"]);
const InputPointerParameters = (0, record_js_1.defineRecord)('input.PointerParameters', [{ "name": "pointerType", "wire": "pointerType", "required": false, "type": { "ref": "input.PointerType" } }]);
const InputPointerSourceActionUnion = (0, union_js_1.defineUnion)('input.PointerSourceAction', { "by": "type", "variants": [{ "value": "pause", "ref": "input.PauseAction" }, { "value": "pointerDown", "ref": "input.PointerDownAction" }, { "value": "pointerUp", "ref": "input.PointerUpAction" }, { "value": "pointerMove", "ref": "input.PointerMoveAction" }] }, { "objectOnly": true });
const InputWheelSourceActions = (0, record_js_1.defineRecord)('input.WheelSourceActions', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "wheel" } }, { "name": "id", "wire": "id", "required": true, "type": { "primitive": "string" } }, { "name": "actions", "wire": "actions", "required": true, "type": { "list": { "ref": "input.WheelSourceAction" } } }]);
const InputWheelSourceActionUnion = (0, union_js_1.defineUnion)('input.WheelSourceAction', { "by": "type", "variants": [{ "value": "pause", "ref": "input.PauseAction" }, { "value": "scroll", "ref": "input.WheelScrollAction" }] }, { "objectOnly": true });
const InputPauseAction = (0, record_js_1.defineRecord)('input.PauseAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "pause" } }, { "name": "duration", "wire": "duration", "required": false, "type": { "ref": "js-uint" } }]);
const InputKeyDownAction = (0, record_js_1.defineRecord)('input.KeyDownAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "keyDown" } }, { "name": "value", "wire": "value", "required": true, "type": { "primitive": "string" } }]);
const InputKeyUpAction = (0, record_js_1.defineRecord)('input.KeyUpAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "keyUp" } }, { "name": "value", "wire": "value", "required": true, "type": { "primitive": "string" } }]);
const InputPointerUpAction = (0, record_js_1.defineRecord)('input.PointerUpAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "pointerUp" } }, { "name": "button", "wire": "button", "required": true, "type": { "ref": "js-uint" } }]);
const InputPointerDownAction = (0, record_js_1.defineRecord)('input.PointerDownAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "pointerDown" } }, { "name": "button", "wire": "button", "required": true, "type": { "ref": "js-uint" } }, { "name": "width", "wire": "width", "required": false, "type": { "ref": "js-uint" } }, { "name": "height", "wire": "height", "required": false, "type": { "ref": "js-uint" } }, { "name": "pressure", "wire": "pressure", "required": false, "type": { "primitive": "number" } }, { "name": "tangentialPressure", "wire": "tangentialPressure", "required": false, "type": { "primitive": "number" } }, { "name": "twist", "wire": "twist", "required": false, "type": { "primitive": "integer" } }, { "name": "altitudeAngle", "wire": "altitudeAngle", "required": false, "type": { "primitive": "number" } }, { "name": "azimuthAngle", "wire": "azimuthAngle", "required": false, "type": { "primitive": "number" } }]);
const InputPointerMoveAction = (0, record_js_1.defineRecord)('input.PointerMoveAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "pointerMove" } }, { "name": "x", "wire": "x", "required": true, "type": { "primitive": "number" } }, { "name": "y", "wire": "y", "required": true, "type": { "primitive": "number" } }, { "name": "duration", "wire": "duration", "required": false, "type": { "ref": "js-uint" } }, { "name": "origin", "wire": "origin", "required": false, "type": { "ref": "input.Origin" } }, { "name": "width", "wire": "width", "required": false, "type": { "ref": "js-uint" } }, { "name": "height", "wire": "height", "required": false, "type": { "ref": "js-uint" } }, { "name": "pressure", "wire": "pressure", "required": false, "type": { "primitive": "number" } }, { "name": "tangentialPressure", "wire": "tangentialPressure", "required": false, "type": { "primitive": "number" } }, { "name": "twist", "wire": "twist", "required": false, "type": { "primitive": "integer" } }, { "name": "altitudeAngle", "wire": "altitudeAngle", "required": false, "type": { "primitive": "number" } }, { "name": "azimuthAngle", "wire": "azimuthAngle", "required": false, "type": { "primitive": "number" } }]);
const InputWheelScrollAction = (0, record_js_1.defineRecord)('input.WheelScrollAction', [{ "name": "type", "wire": "type", "required": true, "type": { "const": "scroll" } }, { "name": "x", "wire": "x", "required": true, "type": { "ref": "js-int" } }, { "name": "y", "wire": "y", "required": true, "type": { "ref": "js-int" } }, { "name": "deltaX", "wire": "deltaX", "required": true, "type": { "ref": "js-int" } }, { "name": "deltaY", "wire": "deltaY", "required": true, "type": { "ref": "js-int" } }, { "name": "duration", "wire": "duration", "required": false, "type": { "ref": "js-uint" } }, { "name": "origin", "wire": "origin", "required": false, "type": { "ref": "input.Origin" } }]);
const InputPointerCommonProperties = (0, record_js_1.defineRecord)('input.PointerCommonProperties', [{ "name": "width", "wire": "width", "required": false, "type": { "ref": "js-uint" } }, { "name": "height", "wire": "height", "required": false, "type": { "ref": "js-uint" } }, { "name": "pressure", "wire": "pressure", "required": false, "type": { "primitive": "number" } }, { "name": "tangentialPressure", "wire": "tangentialPressure", "required": false, "type": { "primitive": "number" } }, { "name": "twist", "wire": "twist", "required": false, "type": { "primitive": "integer" } }, { "name": "altitudeAngle", "wire": "altitudeAngle", "required": false, "type": { "primitive": "number" } }, { "name": "azimuthAngle", "wire": "azimuthAngle", "required": false, "type": { "primitive": "number" } }]);
(0, record_js_1.defineAlias)('input.Origin', { "union": [{ "const": "viewport" }, { "const": "pointer" }, { "ref": "input.ElementOrigin" }], "scalar": "string", "scalarValues": ["viewport", "pointer"] });
(0, record_js_1.defineAlias)('input.PerformActionsResult', { "ref": "EmptyResult" });
const InputReleaseActions = (0, record_js_1.defineRecord)('input.ReleaseActions', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "input.releaseActions" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "input.ReleaseActionsParameters" } }]);
const InputReleaseActionsParameters = (0, record_js_1.defineRecord)('input.ReleaseActionsParameters', [{ "name": "context", "wire": "context", "required": true, "type": { "ref": "browsingContext.BrowsingContext" } }]);
(0, record_js_1.defineAlias)('input.ReleaseActionsResult', { "ref": "EmptyResult" });
const InputSetFiles = (0, record_js_1.defineRecord)('input.SetFiles', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "input.setFiles" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "input.SetFilesParameters" } }]);
const InputSetFilesParameters = (0, record_js_1.defineRecord)('input.SetFilesParameters', [{ "name": "context", "wire": "context", "required": true, "type": { "ref": "browsingContext.BrowsingContext" } }, { "name": "element", "wire": "element", "required": true, "type": { "ref": "script.SharedReference" } }, { "name": "files", "wire": "files", "required": true, "type": { "list": { "primitive": "string" } } }]);
(0, record_js_1.defineAlias)('input.SetFilesResult', { "ref": "EmptyResult" });
const InputFileDialogOpened = (0, record_js_1.defineRecord)('input.FileDialogOpened', [{ "name": "method", "wire": "method", "required": true, "type": { "const": "input.fileDialogOpened" } }, { "name": "params", "wire": "params", "required": true, "type": { "ref": "input.FileDialogInfo" } }]);
const InputFileDialogInfo = (0, record_js_1.defineRecord)('input.FileDialogInfo', [{ "name": "context", "wire": "context", "required": true, "type": { "ref": "browsingContext.BrowsingContext" } }, { "name": "userContext", "wire": "userContext", "required": false, "type": { "ref": "browser.UserContext" } }, { "name": "element", "wire": "element", "required": false, "type": { "ref": "script.SharedReference" } }, { "name": "multiple", "wire": "multiple", "required": true, "type": { "primitive": "boolean" } }]);
// --- Implementation ---
/**
* This is an unsupported API. No compatibility guarantees are provided.
* It tracks the W3C WebDriver BiDi specification directly. As the specification
* evolves, this API will change or be removed without prior notice.
*/
class Input extends domain_js_1.Domain {
static async create(driver) {
return new Input(await domain_js_1.Domain.connect(driver), domain_js_1.DOMAIN_TOKEN);
}
/**
* @param {InputPerformActionsParameters} params
* @param {BrowsingContextBrowsingContext} params.context
* @param {Array<InputSourceActions>} params.actions
* @returns {Promise<void>}
* @see https://w3c.github.io/webdriver-bidi/#command-input-performActions
*/
async performActions(params) {
const validatedParams = new InputPerformActionsParameters(params);
await this.send('input.performActions', validatedParams);
}
/**
* @param {InputReleaseActionsParameters} params
* @param {BrowsingContextBrowsingContext} params.context
* @returns {Promise<void>}
* @see https://w3c.github.io/webdriver-bidi/#command-input-releaseActions
*/
async releaseActions(params) {
const validatedParams = new InputReleaseActionsParameters(params);
await this.send('input.releaseActions', validatedParams);
}
/**
* @param {InputSetFilesParameters} params
* @param {BrowsingContextBrowsingContext} params.context
* @param {ScriptSharedReference} params.element
* @param {Array<string>} params.files
* @returns {Promise<void>}
* @see https://w3c.github.io/webdriver-bidi/#command-input-setFiles
*/
async setFiles(params) {
const validatedParams = new InputSetFilesParameters(params);
await this.send('input.setFiles', validatedParams);
}
}
exports.Input = Input;
/** @see https://w3c.github.io/webdriver-bidi/#event-input-fileDialogOpened */
Input.FILE_DIALOG_OPENED = (0, domain_js_1.event)('input.fileDialogOpened', InputFileDialogInfo);
Input.PointerType = Object.freeze({ MOUSE: "mouse", PEN: "pen", TOUCH: "touch" });