appium-xcuitest-driver-conan
Version:
Appium driver for iOS using XCUITest for backend
118 lines (87 loc) • 6.02 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 _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