UNPKG

webdriverio-automation

Version:

WebdriverIO-Automation android ios project

52 lines (39 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = elementClick; var _getElementTagName = _interopRequireDefault(require("./getElementTagName")); var _executeScript = _interopRequireDefault(require("./executeScript")); var _constants = require("../constants"); var _utils = require("../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const SELECT_SCRIPT = 'return (function select (elem) { elem.selected = true }).apply(null, arguments)'; async function elementClick({ elementId }) { const page = this.getPageHandle(); const elementHandle = this.elementStore.get(elementId); if (!elementHandle) { throw (0, _utils.getStaleElementError)(elementId); } const tagName = await _getElementTagName.default.call(this, { elementId }); if (tagName === 'option') { return _executeScript.default.call(this, { script: SELECT_SCRIPT, args: [{ [_constants.ELEMENT_KEY]: elementId }] }); } return new Promise((resolve, reject) => { const dialogHandler = () => resolve(null); page.once('dialog', dialogHandler); return elementHandle.click().then(() => { page.removeListener('dialog', dialogHandler); resolve(null); }).catch(reject); }); }