appium-webdriveragent-driver
Version:
Appium driver for WebDriverAgent
156 lines (120 loc) • 8.41 kB
JavaScript
;
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==