aboutsummaryrefslogtreecommitdiff
path: root/node_modules/selenium-webdriver/lib/command.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/selenium-webdriver/lib/command.js')
-rw-r--r--node_modules/selenium-webdriver/lib/command.js243
1 files changed, 243 insertions, 0 deletions
diff --git a/node_modules/selenium-webdriver/lib/command.js b/node_modules/selenium-webdriver/lib/command.js
new file mode 100644
index 000000000..c9a366e4e
--- /dev/null
+++ b/node_modules/selenium-webdriver/lib/command.js
@@ -0,0 +1,243 @@
+// 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.
+
+/**
+ * @fileoverview Contains several classes for handling commands.
+ */
+
+'use strict';
+
+/**
+ * Describes a command to execute.
+ * @final
+ */
+class Command {
+ /** @param {string} name The name of this command. */
+ constructor(name) {
+ /** @private {string} */
+ this.name_ = name;
+
+ /** @private {!Object<*>} */
+ this.parameters_ = {};
+ }
+
+ /** @return {string} This command's name. */
+ getName() {
+ return this.name_;
+ }
+
+ /**
+ * Sets a parameter to send with this command.
+ * @param {string} name The parameter name.
+ * @param {*} value The parameter value.
+ * @return {!Command} A self reference.
+ */
+ setParameter(name, value) {
+ this.parameters_[name] = value;
+ return this;
+ }
+
+ /**
+ * Sets the parameters for this command.
+ * @param {!Object<*>} parameters The command parameters.
+ * @return {!Command} A self reference.
+ */
+ setParameters(parameters) {
+ this.parameters_ = parameters;
+ return this;
+ }
+
+ /**
+ * Returns a named command parameter.
+ * @param {string} key The parameter key to look up.
+ * @return {*} The parameter value, or undefined if it has not been set.
+ */
+ getParameter(key) {
+ return this.parameters_[key];
+ }
+
+ /**
+ * @return {!Object<*>} The parameters to send with this command.
+ */
+ getParameters() {
+ return this.parameters_;
+ }
+}
+
+
+/**
+ * Enumeration of predefined names command names that all command processors
+ * will support.
+ * @enum {string}
+ */
+// TODO: Delete obsolete command names.
+const Name = {
+ GET_SERVER_STATUS: 'getStatus',
+
+ NEW_SESSION: 'newSession',
+ GET_SESSIONS: 'getSessions',
+ DESCRIBE_SESSION: 'getSessionCapabilities',
+
+ CLOSE: 'close',
+ QUIT: 'quit',
+
+ GET_CURRENT_URL: 'getCurrentUrl',
+ GET: 'get',
+ GO_BACK: 'goBack',
+ GO_FORWARD: 'goForward',
+ REFRESH: 'refresh',
+
+ ADD_COOKIE: 'addCookie',
+ GET_COOKIE: 'getCookie',
+ GET_ALL_COOKIES: 'getCookies',
+ DELETE_COOKIE: 'deleteCookie',
+ DELETE_ALL_COOKIES: 'deleteAllCookies',
+
+ GET_ACTIVE_ELEMENT: 'getActiveElement',
+ FIND_ELEMENT: 'findElement',
+ FIND_ELEMENTS: 'findElements',
+ FIND_CHILD_ELEMENT: 'findChildElement',
+ FIND_CHILD_ELEMENTS: 'findChildElements',
+
+ CLEAR_ELEMENT: 'clearElement',
+ CLICK_ELEMENT: 'clickElement',
+ SEND_KEYS_TO_ELEMENT: 'sendKeysToElement',
+ SUBMIT_ELEMENT: 'submitElement',
+
+ GET_CURRENT_WINDOW_HANDLE: 'getCurrentWindowHandle',
+ GET_WINDOW_HANDLES: 'getWindowHandles',
+ GET_WINDOW_POSITION: 'getWindowPosition',
+ SET_WINDOW_POSITION: 'setWindowPosition',
+ GET_WINDOW_SIZE: 'getWindowSize',
+ SET_WINDOW_SIZE: 'setWindowSize',
+ MAXIMIZE_WINDOW: 'maximizeWindow',
+
+ SWITCH_TO_WINDOW: 'switchToWindow',
+ SWITCH_TO_FRAME: 'switchToFrame',
+ GET_PAGE_SOURCE: 'getPageSource',
+ GET_TITLE: 'getTitle',
+
+ EXECUTE_SCRIPT: 'executeScript',
+ EXECUTE_ASYNC_SCRIPT: 'executeAsyncScript',
+
+ GET_ELEMENT_TEXT: 'getElementText',
+ GET_ELEMENT_TAG_NAME: 'getElementTagName',
+ IS_ELEMENT_SELECTED: 'isElementSelected',
+ IS_ELEMENT_ENABLED: 'isElementEnabled',
+ IS_ELEMENT_DISPLAYED: 'isElementDisplayed',
+ GET_ELEMENT_LOCATION: 'getElementLocation',
+ GET_ELEMENT_LOCATION_IN_VIEW: 'getElementLocationOnceScrolledIntoView',
+ GET_ELEMENT_SIZE: 'getElementSize',
+ GET_ELEMENT_ATTRIBUTE: 'getElementAttribute',
+ GET_ELEMENT_VALUE_OF_CSS_PROPERTY: 'getElementValueOfCssProperty',
+ ELEMENT_EQUALS: 'elementEquals',
+
+ SCREENSHOT: 'screenshot',
+ TAKE_ELEMENT_SCREENSHOT: 'takeElementScreenshot',
+ IMPLICITLY_WAIT: 'implicitlyWait',
+ SET_SCRIPT_TIMEOUT: 'setScriptTimeout',
+ SET_TIMEOUT: 'setTimeout',
+
+ ACCEPT_ALERT: 'acceptAlert',
+ DISMISS_ALERT: 'dismissAlert',
+ GET_ALERT_TEXT: 'getAlertText',
+ SET_ALERT_TEXT: 'setAlertValue',
+ SET_ALERT_CREDENTIALS: 'setAlertCredentials',
+
+ EXECUTE_SQL: 'executeSQL',
+ GET_LOCATION: 'getLocation',
+ SET_LOCATION: 'setLocation',
+ GET_APP_CACHE: 'getAppCache',
+ GET_APP_CACHE_STATUS: 'getStatus',
+ CLEAR_APP_CACHE: 'clearAppCache',
+ IS_BROWSER_ONLINE: 'isBrowserOnline',
+ SET_BROWSER_ONLINE: 'setBrowserOnline',
+
+ GET_LOCAL_STORAGE_ITEM: 'getLocalStorageItem',
+ GET_LOCAL_STORAGE_KEYS: 'getLocalStorageKeys',
+ SET_LOCAL_STORAGE_ITEM: 'setLocalStorageItem',
+ REMOVE_LOCAL_STORAGE_ITEM: 'removeLocalStorageItem',
+ CLEAR_LOCAL_STORAGE: 'clearLocalStorage',
+ GET_LOCAL_STORAGE_SIZE: 'getLocalStorageSize',
+
+ GET_SESSION_STORAGE_ITEM: 'getSessionStorageItem',
+ GET_SESSION_STORAGE_KEYS: 'getSessionStorageKey',
+ SET_SESSION_STORAGE_ITEM: 'setSessionStorageItem',
+ REMOVE_SESSION_STORAGE_ITEM: 'removeSessionStorageItem',
+ CLEAR_SESSION_STORAGE: 'clearSessionStorage',
+ GET_SESSION_STORAGE_SIZE: 'getSessionStorageSize',
+
+ SET_SCREEN_ORIENTATION: 'setScreenOrientation',
+ GET_SCREEN_ORIENTATION: 'getScreenOrientation',
+
+ // These belong to the Advanced user interactions - an element is
+ // optional for these commands.
+ CLICK: 'mouseClick',
+ DOUBLE_CLICK: 'mouseDoubleClick',
+ MOUSE_DOWN: 'mouseButtonDown',
+ MOUSE_UP: 'mouseButtonUp',
+ MOVE_TO: 'mouseMoveTo',
+ SEND_KEYS_TO_ACTIVE_ELEMENT: 'sendKeysToActiveElement',
+
+ // These belong to the Advanced Touch API
+ TOUCH_SINGLE_TAP: 'touchSingleTap',
+ TOUCH_DOWN: 'touchDown',
+ TOUCH_UP: 'touchUp',
+ TOUCH_MOVE: 'touchMove',
+ TOUCH_SCROLL: 'touchScroll',
+ TOUCH_DOUBLE_TAP: 'touchDoubleTap',
+ TOUCH_LONG_PRESS: 'touchLongPress',
+ TOUCH_FLICK: 'touchFlick',
+
+ GET_AVAILABLE_LOG_TYPES: 'getAvailableLogTypes',
+ GET_LOG: 'getLog',
+ GET_SESSION_LOGS: 'getSessionLogs',
+
+ // Non-standard commands used by the standalone Selenium server.
+ UPLOAD_FILE: 'uploadFile'
+};
+
+
+
+/**
+ * Handles the execution of WebDriver {@link Command commands}.
+ * @interface
+ */
+class Executor {
+ /**
+ * Executes the given {@code command}. If there is an error executing the
+ * command, the provided callback will be invoked with the offending error.
+ * Otherwise, the callback will be invoked with a null Error and non-null
+ * response object.
+ *
+ * @param {!Command} command The command to execute.
+ * @return {!Promise<?>} A promise that will be fulfilled with the command
+ * result.
+ */
+ execute(command) {}
+}
+
+
+
+// PUBLIC API
+
+
+module.exports = {
+ Command: Command,
+ Name: Name,
+ Executor: Executor
+};