UNPKG

appium-xcuitest-driver-conan

Version:

Appium driver for iOS using XCUITest for backend

118 lines (87 loc) 6.02 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 _asyncbox = require('asyncbox'); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _nodeSimctl = require('node-simctl'); var _logger = require('../logger'); var _logger2 = _interopRequireDefault(_logger); var commands = {}; commands.getScreenshot = function callee$0$0() { var getScreenshotFromWDA, result; return _regeneratorRuntime.async(function callee$0$0$(context$1$0) { var _this = this; while (1) switch (context$1$0.prev = context$1$0.next) { case 0: getScreenshotFromWDA = function getScreenshotFromWDA() { var data; return _regeneratorRuntime.async(function getScreenshotFromWDA$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: context$2$0.next = 2; return _regeneratorRuntime.awrap(this.proxyCommand('/screenshot', 'GET')); case 2: data = context$2$0.sent; if (_lodash2['default'].isString(data)) { context$2$0.next = 5; break; } throw new Error('Unable to take screenshot. WDA returned \'' + JSON.stringify(data) + '\''); case 5: return context$2$0.abrupt('return', data); case 6: case 'end': return context$2$0.stop(); } }, null, _this); }; context$1$0.prev = 1; context$1$0.next = 4; return _regeneratorRuntime.awrap(getScreenshotFromWDA()); case 4: return context$1$0.abrupt('return', context$1$0.sent); case 7: context$1$0.prev = 7; context$1$0.t0 = context$1$0['catch'](1); if (!(!this.isRealDevice() && this.xcodeVersion.versionFloat >= 8.1)) { context$1$0.next = 14; break; } _logger2['default'].info('Falling back to \'simctl io screenshot\' API'); context$1$0.next = 13; return _regeneratorRuntime.awrap((0, _nodeSimctl.getScreenshot)(this.opts.udid)); case 13: return context$1$0.abrupt('return', context$1$0.sent); case 14: result = undefined; context$1$0.next = 17; return _regeneratorRuntime.awrap((0, _asyncbox.retryInterval)(9, 1000, function callee$2$0() { return _regeneratorRuntime.async(function callee$2$0$(context$3$0) { while (1) switch (context$3$0.prev = context$3$0.next) { case 0: context$3$0.next = 2; return _regeneratorRuntime.awrap(getScreenshotFromWDA()); case 2: result = context$3$0.sent; case 3: case 'end': return context$3$0.stop(); } }, null, _this); })); case 17: return context$1$0.abrupt('return', result); case 18: case 'end': return context$1$0.stop(); } }, null, this, [[1, 7]]); }; exports['default'] = commands; module.exports = exports['default']; // Retry for real devices only. Fail fast on Simulator if simctl does not work as expected //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zY3JlZW5zaG90cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3dCQUE4QixVQUFVOztzQkFDMUIsUUFBUTs7OzswQkFDUSxhQUFhOztzQkFDM0IsV0FBVzs7OztBQUUzQixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7O0FBRWxCLFFBQVEsQ0FBQyxhQUFhLEdBQUc7TUFDakIsb0JBQW9CLEVBZXBCLE1BQU07Ozs7OztBQWZOLDRCQUFvQixHQUFHLFNBQXZCLG9CQUFvQjtjQUNsQixJQUFJOzs7OztpREFBUyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7OztBQUFwRCxvQkFBSTs7b0JBQ0wsb0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQzs7Ozs7c0JBQ2IsSUFBSSxLQUFLLGdEQUE2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFJOzs7b0RBRS9FLElBQUk7Ozs7Ozs7U0FDWjs7Ozt5Q0FFYyxvQkFBb0IsRUFBRTs7Ozs7Ozs7O2NBRS9CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQTs7Ozs7QUFDL0QsNEJBQUksSUFBSSxnREFBOEMsQ0FBQzs7eUNBQzFDLCtCQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzs7Ozs7QUFHeEMsY0FBTTs7eUNBQ0osNkJBQWMsQ0FBQyxFQUFFLElBQUksRUFBRTs7Ozs7aURBQ1osb0JBQW9CLEVBQUU7OztBQUFyQyxzQkFBTTs7Ozs7OztTQUNQLENBQUM7Ozs0Q0FDSyxNQUFNOzs7Ozs7O0NBRWhCLENBQUM7O3FCQUVhLFFBQVEiLCJmaWxlIjoibGliL2NvbW1hbmRzL3NjcmVlbnNob3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBnZXRTY3JlZW5zaG90IH0gZnJvbSAnbm9kZS1zaW1jdGwnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuXG5sZXQgY29tbWFuZHMgPSB7fTtcblxuY29tbWFuZHMuZ2V0U2NyZWVuc2hvdCA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZ2V0U2NyZWVuc2hvdEZyb21XREEgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvc2NyZWVuc2hvdCcsICdHRVQnKTtcbiAgICBpZiAoIV8uaXNTdHJpbmcoZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHRha2Ugc2NyZWVuc2hvdC4gV0RBIHJldHVybmVkICcke0pTT04uc3RyaW5naWZ5KGRhdGEpfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH07XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGdldFNjcmVlbnNob3RGcm9tV0RBKCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghdGhpcy5pc1JlYWxEZXZpY2UoKSAmJiB0aGlzLnhjb2RlVmVyc2lvbi52ZXJzaW9uRmxvYXQgPj0gOC4xKSB7XG4gICAgICBsb2cuaW5mbyhgRmFsbGluZyBiYWNrIHRvICdzaW1jdGwgaW8gc2NyZWVuc2hvdCcgQVBJYCk7XG4gICAgICByZXR1cm4gYXdhaXQgZ2V0U2NyZWVuc2hvdCh0aGlzLm9wdHMudWRpZCk7XG4gICAgfVxuICAgIC8vIFJldHJ5IGZvciByZWFsIGRldmljZXMgb25seS4gRmFpbCBmYXN0IG9uIFNpbXVsYXRvciBpZiBzaW1jdGwgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZFxuICAgIGxldCByZXN1bHQ7XG4gICAgYXdhaXQgcmV0cnlJbnRlcnZhbCg5LCAxMDAwLCBhc3luYyAoKSA9PiB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBnZXRTY3JlZW5zaG90RnJvbVdEQSgpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9