appium-xcuitest-driver-conan
Version:
Appium driver for iOS using XCUITest for backend
159 lines (119 loc) • 7.51 kB
JavaScript
;
var _Object$assign = require('babel-runtime/core-js/object/assign')['default'];
var _regeneratorRuntime = require('babel-runtime/regenerator')['default'];
var _getIterator = require('babel-runtime/core-js/get-iterator')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _appiumIosDriver = require('appium-ios-driver');
var extensions = {};
_Object$assign(extensions, _appiumIosDriver.iosCommands.context);
// override, as appium-ios-driver's version uses UI Automation to close
extensions.closeAlertBeforeTest = function callee$0$0() {
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
return context$1$0.abrupt('return', true);
case 1:
case 'end':
return context$1$0.stop();
}
}, null, this);
};
// the appium-ios-driver version of this function fails in CI,
// and the wrong webview is almost always retrieved
extensions._getLatestWebviewContextForTitle = extensions.getLatestWebviewContextForTitle;
extensions.getLatestWebviewContextForTitle = function callee$0$0(regExp) {
var currentUrl, contexts, matchingCtx, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, ctx, url;
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
currentUrl = this.getCurrentUrl();
if (currentUrl) {
context$1$0.next = 3;
break;
}
return context$1$0.abrupt('return', this._getLatestWebviewContextForTitle(regExp));
case 3:
context$1$0.next = 5;
return _regeneratorRuntime.awrap(this.getContextsAndViews());
case 5:
contexts = context$1$0.sent;
matchingCtx = undefined;
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
context$1$0.prev = 10;
_iterator = _getIterator(contexts);
case 12:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
context$1$0.next = 22;
break;
}
ctx = _step.value;
if (!ctx.view) {
context$1$0.next = 19;
break;
}
url = ctx.view.url || '';
if (!(url === this.getCurrentUrl())) {
context$1$0.next = 19;
break;
}
matchingCtx = ctx;
return context$1$0.abrupt('break', 22);
case 19:
_iteratorNormalCompletion = true;
context$1$0.next = 12;
break;
case 22:
context$1$0.next = 28;
break;
case 24:
context$1$0.prev = 24;
context$1$0.t0 = context$1$0['catch'](10);
_didIteratorError = true;
_iteratorError = context$1$0.t0;
case 28:
context$1$0.prev = 28;
context$1$0.prev = 29;
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
case 31:
context$1$0.prev = 31;
if (!_didIteratorError) {
context$1$0.next = 34;
break;
}
throw _iteratorError;
case 34:
return context$1$0.finish(31);
case 35:
return context$1$0.finish(28);
case 36:
if (!matchingCtx) {
context$1$0.next = 40;
break;
}
return context$1$0.abrupt('return', matchingCtx.id);
case 40:
context$1$0.next = 42;
return _regeneratorRuntime.awrap(this._getLatestWebviewContextForTitle(regExp));
case 42:
return context$1$0.abrupt('return', context$1$0.sent);
case 43:
case 'end':
return context$1$0.stop();
}
}, null, this, [[10, 24, 28, 36], [29,, 31, 35]]);
};
extensions.isWebContext = function () {
return !!this.curContext && this.curContext !== _appiumIosDriver.iosCommands.context.NATIVE_WIN;
};
extensions.isWebview = function () {
return this.isWebContext();
};
exports['default'] = extensions;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jb250ZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OzsrQkFBNEIsbUJBQW1COztBQUcvQyxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7O0FBRXBCLGVBQWMsVUFBVSxFQUFFLDZCQUFZLE9BQU8sQ0FBQyxDQUFDOzs7QUFHL0MsVUFBVSxDQUFDLG9CQUFvQixHQUFHOzs7OzRDQUN6QixJQUFJOzs7Ozs7O0NBQ1osQ0FBQzs7OztBQUlGLFVBQVUsQ0FBQyxnQ0FBZ0MsR0FBRyxVQUFVLENBQUMsK0JBQStCLENBQUM7QUFDekYsVUFBVSxDQUFDLCtCQUErQixHQUFHLG9CQUFnQixNQUFNO01BQzdELFVBQVUsRUFLVixRQUFRLEVBQ1IsV0FBVyxrRkFDTixHQUFHLEVBRUosR0FBRzs7Ozs7QUFUUCxrQkFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7O1lBQ2hDLFVBQVU7Ozs7OzRDQUNOLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUM7Ozs7eUNBR2pDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTs7O0FBQTNDLGdCQUFRO0FBQ1IsbUJBQVc7Ozs7O2lDQUNDLFFBQVE7Ozs7Ozs7O0FBQWYsV0FBRzs7YUFDTixHQUFHLENBQUMsSUFBSTs7Ozs7QUFDTixXQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRTs7Y0FDeEIsR0FBRyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTs7Ozs7QUFDOUIsbUJBQVcsR0FBRyxHQUFHLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7YUFLcEIsV0FBVzs7Ozs7NENBQ04sV0FBVyxDQUFDLEVBQUU7Ozs7eUNBRVIsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7OztDQUU3RCxDQUFDOztBQUVGLFVBQVUsQ0FBQyxZQUFZLEdBQUcsWUFBWTtBQUNwQyxTQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssNkJBQVksT0FBTyxDQUFDLFVBQVUsQ0FBQztDQUNoRixDQUFDOztBQUVGLFVBQVUsQ0FBQyxTQUFTLEdBQUcsWUFBWTtBQUNqQyxTQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztDQUM1QixDQUFDOztxQkFHYSxVQUFVIiwiZmlsZSI6ImxpYi9jb21tYW5kcy9jb250ZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW9zQ29tbWFuZHMgfSBmcm9tICdhcHBpdW0taW9zLWRyaXZlcic7XG5cblxubGV0IGV4dGVuc2lvbnMgPSB7fTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBpb3NDb21tYW5kcy5jb250ZXh0KTtcblxuLy8gb3ZlcnJpZGUsIGFzIGFwcGl1bS1pb3MtZHJpdmVyJ3MgdmVyc2lvbiB1c2VzIFVJIEF1dG9tYXRpb24gdG8gY2xvc2VcbmV4dGVuc2lvbnMuY2xvc2VBbGVydEJlZm9yZVRlc3QgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcblxuLy8gdGhlIGFwcGl1bS1pb3MtZHJpdmVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBmYWlscyBpbiBDSSxcbi8vIGFuZCB0aGUgd3Jvbmcgd2VidmlldyBpcyBhbG1vc3QgYWx3YXlzIHJldHJpZXZlZFxuZXh0ZW5zaW9ucy5fZ2V0TGF0ZXN0V2Vidmlld0NvbnRleHRGb3JUaXRsZSA9IGV4dGVuc2lvbnMuZ2V0TGF0ZXN0V2Vidmlld0NvbnRleHRGb3JUaXRsZTtcbmV4dGVuc2lvbnMuZ2V0TGF0ZXN0V2Vidmlld0NvbnRleHRGb3JUaXRsZSA9IGFzeW5jIGZ1bmN0aW9uIChyZWdFeHApIHtcbiAgbGV0IGN1cnJlbnRVcmwgPSB0aGlzLmdldEN1cnJlbnRVcmwoKTtcbiAgaWYgKCFjdXJyZW50VXJsKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldExhdGVzdFdlYnZpZXdDb250ZXh0Rm9yVGl0bGUocmVnRXhwKTtcbiAgfVxuXG4gIGxldCBjb250ZXh0cyA9IGF3YWl0IHRoaXMuZ2V0Q29udGV4dHNBbmRWaWV3cygpO1xuICBsZXQgbWF0Y2hpbmdDdHg7XG4gIGZvciAobGV0IGN0eCBvZiBjb250ZXh0cykge1xuICAgIGlmIChjdHgudmlldykge1xuICAgICAgbGV0IHVybCA9IGN0eC52aWV3LnVybCB8fCAnJztcbiAgICAgIGlmICh1cmwgPT09IHRoaXMuZ2V0Q3VycmVudFVybCgpKSB7XG4gICAgICAgIG1hdGNoaW5nQ3R4ID0gY3R4O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKG1hdGNoaW5nQ3R4KSB7XG4gICAgcmV0dXJuIG1hdGNoaW5nQ3R4LmlkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9nZXRMYXRlc3RXZWJ2aWV3Q29udGV4dEZvclRpdGxlKHJlZ0V4cCk7XG4gIH1cbn07XG5cbmV4dGVuc2lvbnMuaXNXZWJDb250ZXh0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gISF0aGlzLmN1ckNvbnRleHQgJiYgdGhpcy5jdXJDb250ZXh0ICE9PSBpb3NDb21tYW5kcy5jb250ZXh0Lk5BVElWRV9XSU47XG59O1xuXG5leHRlbnNpb25zLmlzV2VidmlldyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuaXNXZWJDb250ZXh0KCk7XG59O1xuXG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=