webdriverio-automation
Version:
WebdriverIO-Automation android ios project
69 lines (54 loc) • 3.31 kB
JavaScript
;
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;