UNPKG

appium-webdriveragent-driver

Version:
156 lines (120 loc) 8.41 kB
'use strict'; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _mobileJsonWireProtocol = require('mobile-json-wire-protocol'); var _logger = require('../logger'); var _logger2 = _interopRequireDefault(_logger); var WEBVIEW_WIN = 'WEBVIEW'; var WEBVIEW_BASE = WEBVIEW_WIN + '_'; var NATIVE_WIN = 'NATIVE_APP'; var commands = {}; commands.getCurrentContext = function callee$0$0() { var safariDriver; return _regeneratorRuntime.async(function callee$0$0$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { case 0: if (!this.inWebview()) { context$1$0.next = 9; break; } context$1$0.next = 3; return _regeneratorRuntime.awrap(this.getSafariDriver()); case 3: safariDriver = context$1$0.sent; context$1$0.next = 6; return _regeneratorRuntime.awrap(safariDriver.getCurrentContext()); case 6: return context$1$0.abrupt('return', context$1$0.sent); case 9: return context$1$0.abrupt('return', NATIVE_WIN); case 10: case 'end': return context$1$0.stop(); } }, null, this); }; commands.getContexts = function callee$0$0() { var contexts, safariDriver; return _regeneratorRuntime.async(function callee$0$0$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { case 0: _logger2['default'].debug('Getting list of available contexts'); contexts = []; context$1$0.next = 4; return _regeneratorRuntime.awrap(this.getSafariDriver()); case 4: safariDriver = context$1$0.sent; if (!safariDriver) { context$1$0.next = 9; break; } context$1$0.next = 8; return _regeneratorRuntime.awrap(safariDriver.getContextsAndViews()); case 8: contexts = context$1$0.sent; case 9: if (!this.isSafari()) { contexts.push({ id: NATIVE_WIN }); } return context$1$0.abrupt('return', contexts.map(function (context) { return context.id; })); case 11: case 'end': return context$1$0.stop(); } }, null, this); }; commands.setContext = function callee$0$0(name, callback, skipReadyCheck) { var safariDriver, returned; return _regeneratorRuntime.async(function callee$0$0$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { case 0: if (!(name === NATIVE_WIN)) { context$1$0.next = 10; break; } if (!this.isSafari()) { context$1$0.next = 4; break; } _logger2['default'].error('Native context not supported with XCUITest automation'); throw new _mobileJsonWireProtocol.errors.NotImplementedError(); case 4: if (this.inWebview()) { context$1$0.next = 7; break; } _logger2['default'].debug('Already in native webview'); return context$1$0.abrupt('return'); case 7: this.webview = false; context$1$0.next = 19; break; case 10: context$1$0.next = 12; return _regeneratorRuntime.awrap(this.getSafariDriver()); case 12: safariDriver = context$1$0.sent; context$1$0.next = 15; return _regeneratorRuntime.awrap(safariDriver.setContext(name, callback, skipReadyCheck)); case 15: returned = context$1$0.sent; this.webview = true; // only set this to true after the safariDriver command is successful this.jwpProxyActive = false; return context$1$0.abrupt('return', returned); case 19: case 'end': return context$1$0.stop(); } }, null, this); }; exports.commands = commands; exports.WEBVIEW_WIN = WEBVIEW_WIN; exports.WEBVIEW_BASE = WEBVIEW_BASE; exports['default'] = commands; // safariDriver can be null, if no webviews are present //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jb250ZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7c0NBQXVCLDJCQUEyQjs7c0JBQy9CLFdBQVc7Ozs7QUFFOUIsSUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlCLElBQU0sWUFBWSxHQUFNLFdBQVcsTUFBRyxDQUFDO0FBQ3ZDLElBQU0sVUFBVSxHQUFHLFlBQVksQ0FBQzs7QUFFaEMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDOztBQUVsQixRQUFRLENBQUMsaUJBQWlCLEdBQUc7TUFFckIsWUFBWTs7OzthQURkLElBQUksQ0FBQyxTQUFTLEVBQUU7Ozs7Ozt5Q0FDTyxJQUFJLENBQUMsZUFBZSxFQUFFOzs7QUFBM0Msb0JBQVk7O3lDQUNILFlBQVksQ0FBQyxpQkFBaUIsRUFBRTs7Ozs7OzRDQUV0QyxVQUFVOzs7Ozs7O0NBRXBCLENBQUM7O0FBRUYsUUFBUSxDQUFDLFdBQVcsR0FBRztNQUVqQixRQUFRLEVBRVIsWUFBWTs7OztBQUhoQiw0QkFBTyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUMvQyxnQkFBUSxHQUFHLEVBQUU7O3lDQUVRLElBQUksQ0FBQyxlQUFlLEVBQUU7OztBQUEzQyxvQkFBWTs7YUFDWixZQUFZOzs7Ozs7eUNBQ0csWUFBWSxDQUFDLG1CQUFtQixFQUFFOzs7QUFBbkQsZ0JBQVE7Ozs7QUFHVixZQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO0FBQ3BCLGtCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBRSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7U0FDakM7NENBQ00sUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFDLE9BQU87aUJBQUssT0FBTyxDQUFDLEVBQUU7U0FBQSxDQUFDOzs7Ozs7O0NBQzdDLENBQUM7O0FBRUYsUUFBUSxDQUFDLFVBQVUsR0FBRyxvQkFBZ0IsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjO01BYTVELFlBQVksRUFDWixRQUFROzs7O2NBYlYsSUFBSSxLQUFLLFVBQVUsQ0FBQTs7Ozs7YUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRTs7Ozs7QUFDakIsNEJBQU8sS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7Y0FDaEUsSUFBSSwrQkFBTyxtQkFBbUIsRUFBRTs7O1lBRW5DLElBQUksQ0FBQyxTQUFTLEVBQUU7Ozs7O0FBQ25CLDRCQUFPLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDOzs7OztBQUk1QyxZQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzs7Ozs7O3lDQUVJLElBQUksQ0FBQyxlQUFlLEVBQUU7OztBQUEzQyxvQkFBWTs7eUNBQ0ssWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQzs7O0FBQXhFLGdCQUFROztBQUNaLFlBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLFlBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDOzRDQUNyQixRQUFROzs7Ozs7O0NBRWxCLENBQUM7O1FBRU8sUUFBUSxHQUFSLFFBQVE7UUFBRSxXQUFXLEdBQVgsV0FBVztRQUFFLFlBQVksR0FBWixZQUFZO3FCQUM3QixRQUFRIiwiZmlsZSI6ImxpYi9jb21tYW5kcy9jb250ZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnbW9iaWxlLWpzb24td2lyZS1wcm90b2NvbCc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5cbmNvbnN0IFdFQlZJRVdfV0lOID0gJ1dFQlZJRVcnO1xuY29uc3QgV0VCVklFV19CQVNFID0gYCR7V0VCVklFV19XSU59X2A7XG5jb25zdCBOQVRJVkVfV0lOID0gJ05BVElWRV9BUFAnO1xuXG5sZXQgY29tbWFuZHMgPSB7fTtcblxuY29tbWFuZHMuZ2V0Q3VycmVudENvbnRleHQgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmluV2VidmlldygpKSB7XG4gICAgbGV0IHNhZmFyaURyaXZlciA9IGF3YWl0IHRoaXMuZ2V0U2FmYXJpRHJpdmVyKCk7XG4gICAgcmV0dXJuIGF3YWl0IHNhZmFyaURyaXZlci5nZXRDdXJyZW50Q29udGV4dCgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBOQVRJVkVfV0lOO1xuICB9XG59O1xuXG5jb21tYW5kcy5nZXRDb250ZXh0cyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgbG9nZ2VyLmRlYnVnKCdHZXR0aW5nIGxpc3Qgb2YgYXZhaWxhYmxlIGNvbnRleHRzJyk7XG4gIGxldCBjb250ZXh0cyA9IFtdO1xuICAvLyBzYWZhcmlEcml2ZXIgY2FuIGJlIG51bGwsIGlmIG5vIHdlYnZpZXdzIGFyZSBwcmVzZW50XG4gIGxldCBzYWZhcmlEcml2ZXIgPSBhd2FpdCB0aGlzLmdldFNhZmFyaURyaXZlcigpO1xuICBpZiAoc2FmYXJpRHJpdmVyKSB7XG4gICAgY29udGV4dHMgPSBhd2FpdCBzYWZhcmlEcml2ZXIuZ2V0Q29udGV4dHNBbmRWaWV3cygpO1xuICB9XG5cbiAgaWYgKCF0aGlzLmlzU2FmYXJpKCkpIHtcbiAgICBjb250ZXh0cy5wdXNoKHtpZDogTkFUSVZFX1dJTn0pO1xuICB9XG4gIHJldHVybiBjb250ZXh0cy5tYXAoKGNvbnRleHQpID0+IGNvbnRleHQuaWQpO1xufTtcblxuY29tbWFuZHMuc2V0Q29udGV4dCA9IGFzeW5jIGZ1bmN0aW9uIChuYW1lLCBjYWxsYmFjaywgc2tpcFJlYWR5Q2hlY2spIHtcbiAgaWYgKG5hbWUgPT09IE5BVElWRV9XSU4pIHtcbiAgICBpZiAodGhpcy5pc1NhZmFyaSgpKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoJ05hdGl2ZSBjb250ZXh0IG5vdCBzdXBwb3J0ZWQgd2l0aCBYQ1VJVGVzdCBhdXRvbWF0aW9uJyk7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmluV2VidmlldygpKSB7XG4gICAgICBsb2dnZXIuZGVidWcoJ0FscmVhZHkgaW4gbmF0aXZlIHdlYnZpZXcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLndlYnZpZXcgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgc2FmYXJpRHJpdmVyID0gYXdhaXQgdGhpcy5nZXRTYWZhcmlEcml2ZXIoKTtcbiAgICBsZXQgcmV0dXJuZWQgPSBhd2FpdCBzYWZhcmlEcml2ZXIuc2V0Q29udGV4dChuYW1lLCBjYWxsYmFjaywgc2tpcFJlYWR5Q2hlY2spO1xuICAgIHRoaXMud2VidmlldyA9IHRydWU7IC8vIG9ubHkgc2V0IHRoaXMgdG8gdHJ1ZSBhZnRlciB0aGUgc2FmYXJpRHJpdmVyIGNvbW1hbmQgaXMgc3VjY2Vzc2Z1bFxuICAgIHRoaXMuandwUHJveHlBY3RpdmUgPSBmYWxzZTtcbiAgICByZXR1cm4gcmV0dXJuZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCB7IGNvbW1hbmRzLCBXRUJWSUVXX1dJTiwgV0VCVklFV19CQVNFIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdfQ==