UNPKG

webdriverio-automation

Version:

WebdriverIO-Automation android ios project

69 lines (54 loc) 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.builder = exports.cmdArgs = exports.desc = exports.command = void 0; var _lodash = _interopRequireDefault(require("lodash.pickby")); var _webdriverio = require("webdriverio"); var _utils = require("@wdio/utils"); var _utils2 = require("../utils"); var _constants = require("../constants"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } const IGNORED_ARGS = ['bail', 'framework', 'reporters', 'suite', 'spec', 'exclude', 'mochaOpts', 'jasmineNodeOpts', 'cucumberOpts']; const command = 'repl <option> [capabilities]'; exports.command = command; const desc = 'Run WebDriver session in command line'; exports.desc = desc; const cmdArgs = { platformVersion: { alias: 'v', desc: 'Version of OS for mobile devices', type: 'string' }, deviceName: { alias: 'd', desc: 'Device name for mobile devices', type: 'string' }, udid: { alias: 'u', desc: 'UDID of real mobile devices', type: 'string' } }; exports.cmdArgs = cmdArgs; const builder = yargs => { return yargs.options((0, _lodash.default)(cmdArgs, (_, key) => !IGNORED_ARGS.includes(key))).example('$0 repl firefox --path /', 'Run repl locally').example('$0 repl chrome -u <SAUCE_USERNAME> -k <SAUCE_ACCESS_KEY>', 'Run repl in Sauce Labs cloud').example('$0 repl android', 'Run repl browser on launched Android device').example('$0 repl "./path/to/your_app.app"', 'Run repl native app on iOS simulator').example('$0 repl ios -v 11.3 -d "iPhone 7" -u 123432abc', 'Run repl browser on iOS device with capabilities').epilogue(_constants.CLI_EPILOGUE).help(); }; exports.builder = builder; const handler = async argv => { const caps = (0, _utils2.getCapabilities)(argv); const execMode = _utils.hasWdioSyncSupport ? { runner: 'repl' } : {}; const client = await (0, _webdriverio.remote)(_objectSpread(_objectSpread(_objectSpread({}, argv), caps), execMode)); global.$ = client.$.bind(client); global.$$ = client.$$.bind(client); global.browser = client; await client.debug(); return client.deleteSession(); }; exports.handler = handler;