UNPKG

appium-xcuitest-driver-conan

Version:

Appium driver for iOS using XCUITest for backend

142 lines (110 loc) 7.6 kB
'use strict'; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _Object$assign = require('babel-runtime/core-js/object/assign')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _appiumBaseDriver = require('appium-base-driver'); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _logger = require('../logger'); var _logger2 = _interopRequireDefault(_logger); var commands = {}, helpers = {}, extensions = {}; commands.back = 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: if (this.isWebContext()) { context$1$0.next = 5; break; } context$1$0.next = 3; return _regeneratorRuntime.awrap(this.nativeBack()); case 3: context$1$0.next = 7; break; case 5: context$1$0.next = 7; return _regeneratorRuntime.awrap(this.mobileWebNav('back')); case 7: case 'end': return context$1$0.stop(); } }, null, this); }; helpers.nativeBack = function callee$0$0() { var navBar, buttons, backButton; return _regeneratorRuntime.async(function callee$0$0$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { case 0: context$1$0.prev = 0; context$1$0.next = 3; return _regeneratorRuntime.awrap(this.findNativeElementOrElements('class name', 'XCUIElementTypeNavigationBar', false)); case 3: navBar = context$1$0.sent; context$1$0.next = 6; return _regeneratorRuntime.awrap(this.findNativeElementOrElements('class name', 'XCUIElementTypeButton', true, navBar)); case 6: buttons = context$1$0.sent; backButton = _lodash2['default'].filter(buttons, function (value) { return value.label === 'Back'; })[0]; _logger2['default'].debug('Found navigation bar \'back\' button. Clicking.'); context$1$0.next = 11; return _regeneratorRuntime.awrap(this.nativeClick(backButton)); case 11: context$1$0.next = 16; break; case 13: context$1$0.prev = 13; context$1$0.t0 = context$1$0['catch'](0); _logger2['default'].error('Unable to find navigation bar and back button.'); case 16: case 'end': return context$1$0.stop(); } }, null, this, [[0, 13]]); }; commands.forward = 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: if (!this.isWebContext()) {} context$1$0.next = 3; return _regeneratorRuntime.awrap(this.mobileWebNav('forward')); case 3: case 'end': return context$1$0.stop(); } }, null, this); }; commands.closeWindow = function callee$0$0() { var script; 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.isWebContext()) { context$1$0.next = 2; break; } throw new _appiumBaseDriver.errors.NotImplementedError(); case 2: script = "return window.open('','_self').close();"; context$1$0.next = 5; return _regeneratorRuntime.awrap(this.executeAtom('execute_script', [script, []], true)); case 5: return context$1$0.abrupt('return', context$1$0.sent); case 6: case 'end': return context$1$0.stop(); } }, null, this); }; _Object$assign(extensions, commands, helpers); exports.commands = commands; exports.helpers = helpers; exports['default'] = extensions; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9uYXZpZ2F0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztnQ0FBdUIsb0JBQW9COztzQkFDN0IsUUFBUTs7OztzQkFDTixXQUFXOzs7O0FBRzNCLElBQUksUUFBUSxHQUFHLEVBQUU7SUFBRSxPQUFPLEdBQUcsRUFBRTtJQUFFLFVBQVUsR0FBRyxFQUFFLENBQUM7O0FBRWpELFFBQVEsQ0FBQyxJQUFJLEdBQUc7Ozs7WUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFOzs7Ozs7eUNBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUU7Ozs7Ozs7O3lDQUVqQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7Ozs7OztDQUVsQyxDQUFDOztBQUVGLE9BQU8sQ0FBQyxVQUFVLEdBQUc7TUFFYixNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVU7Ozs7Ozt5Q0FGSyxJQUFJLENBQUMsMkJBQTJCLENBQUMsWUFBWSxFQUFFLDhCQUE4QixFQUFFLEtBQUssQ0FBQzs7O0FBQXBHLGNBQU07O3lDQUNVLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQzs7O0FBQXJHLGVBQU87QUFDUCxrQkFBVSxHQUFHLG9CQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBQyxLQUFLO2lCQUFLLEtBQUssQ0FBQyxLQUFLLEtBQUssTUFBTTtTQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBQ3hFLDRCQUFJLEtBQUssbURBQWlELENBQUM7O3lDQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7OztBQUVsQyw0QkFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQzs7Ozs7OztDQUUvRCxDQUFDOztBQUVGLFFBQVEsQ0FBQyxPQUFPLEdBQUc7Ozs7QUFDakIsWUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUN6Qjs7eUNBQ0ssSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Ozs7Ozs7Q0FDbkMsQ0FBQzs7QUFFRixRQUFRLENBQUMsV0FBVyxHQUFHO01BSWpCLE1BQU07Ozs7WUFITCxJQUFJLENBQUMsWUFBWSxFQUFFOzs7OztjQUNoQixJQUFJLHlCQUFPLG1CQUFtQixFQUFFOzs7QUFFcEMsY0FBTSxHQUFHLHlDQUF5Qzs7eUNBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDOzs7Ozs7Ozs7O0NBQ3BFLENBQUM7O0FBR0YsZUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsR0FBUixRQUFRO1FBQUUsT0FBTyxHQUFQLE9BQU87cUJBQ1gsVUFBVSIsImZpbGUiOiJsaWIvY29tbWFuZHMvbmF2aWdhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS1iYXNlLWRyaXZlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuYmFjayA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgYXdhaXQgdGhpcy5uYXRpdmVCYWNrKCk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgdGhpcy5tb2JpbGVXZWJOYXYoJ2JhY2snKTtcbiAgfVxufTtcblxuaGVscGVycy5uYXRpdmVCYWNrID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIGxldCBuYXZCYXIgPSBhd2FpdCB0aGlzLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cygnY2xhc3MgbmFtZScsICdYQ1VJRWxlbWVudFR5cGVOYXZpZ2F0aW9uQmFyJywgZmFsc2UpO1xuICAgIGxldCBidXR0b25zID0gYXdhaXQgdGhpcy5maW5kTmF0aXZlRWxlbWVudE9yRWxlbWVudHMoJ2NsYXNzIG5hbWUnLCAnWENVSUVsZW1lbnRUeXBlQnV0dG9uJywgdHJ1ZSwgbmF2QmFyKTtcbiAgICBsZXQgYmFja0J1dHRvbiA9IF8uZmlsdGVyKGJ1dHRvbnMsICh2YWx1ZSkgPT4gdmFsdWUubGFiZWwgPT09ICdCYWNrJylbMF07XG4gICAgbG9nLmRlYnVnKGBGb3VuZCBuYXZpZ2F0aW9uIGJhciAnYmFjaycgYnV0dG9uLiBDbGlja2luZy5gKTtcbiAgICBhd2FpdCB0aGlzLm5hdGl2ZUNsaWNrKGJhY2tCdXR0b24pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZXJyb3IoJ1VuYWJsZSB0byBmaW5kIG5hdmlnYXRpb24gYmFyIGFuZCBiYWNrIGJ1dHRvbi4nKTtcbiAgfVxufTtcblxuY29tbWFuZHMuZm9yd2FyZCA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gIH1cbiAgYXdhaXQgdGhpcy5tb2JpbGVXZWJOYXYoJ2ZvcndhcmQnKTtcbn07XG5cbmNvbW1hbmRzLmNsb3NlV2luZG93ID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuICBsZXQgc2NyaXB0ID0gXCJyZXR1cm4gd2luZG93Lm9wZW4oJycsJ19zZWxmJykuY2xvc2UoKTtcIjtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW3NjcmlwdCwgW11dLCB0cnVlKTtcbn07XG5cblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==