webdriverio-automation
Version:
WebdriverIO-Automation android ios project
65 lines (47 loc) • 8.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.MATCH_TEMPLATE_MODE = exports.DEFAULT_MATCH_THRESHOLD = exports.helpers = exports.commands = void 0;
require("source-map-support/register");
var _lodash = _interopRequireDefault(require("lodash"));
var _errors = require("../../protocol/errors");
var _appiumSupport = require("appium-support");
const commands = {},
helpers = {},
extensions = {};
exports.helpers = helpers;
exports.commands = commands;
const MATCH_FEATURES_MODE = 'matchFeatures';
const GET_SIMILARITY_MODE = 'getSimilarity';
const MATCH_TEMPLATE_MODE = 'matchTemplate';
exports.MATCH_TEMPLATE_MODE = MATCH_TEMPLATE_MODE;
const DEFAULT_MATCH_THRESHOLD = 0.4;
exports.DEFAULT_MATCH_THRESHOLD = DEFAULT_MATCH_THRESHOLD;
commands.compareImages = async function compareImages(mode, firstImage, secondImage, options = {}) {
const img1 = Buffer.from(firstImage, 'base64');
const img2 = Buffer.from(secondImage, 'base64');
let result = {};
switch (_lodash.default.toLower(mode)) {
case MATCH_FEATURES_MODE.toLowerCase():
result = await _appiumSupport.imageUtil.getImagesMatches(img1, img2, options);
break;
case GET_SIMILARITY_MODE.toLowerCase():
result = await _appiumSupport.imageUtil.getImagesSimilarity(img1, img2, options);
break;
case MATCH_TEMPLATE_MODE.toLowerCase():
result = await _appiumSupport.imageUtil.getImageOccurrence(img1, img2, options);
break;
default:
throw new _errors.errors.InvalidArgumentError(`'${mode}' images comparison mode is unknown. ` + `Only ${JSON.stringify([MATCH_FEATURES_MODE, GET_SIMILARITY_MODE, MATCH_TEMPLATE_MODE])} modes are supported.`);
}
if (!_lodash.default.isEmpty(result.visualization)) {
result.visualization = result.visualization.toString('base64');
}
return result;
};
Object.assign(extensions, commands, helpers);
var _default = extensions;
exports.default = _default;require('source-map-support').install();
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2ltYWdlcy5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiTUFUQ0hfRkVBVFVSRVNfTU9ERSIsIkdFVF9TSU1JTEFSSVRZX01PREUiLCJNQVRDSF9URU1QTEFURV9NT0RFIiwiREVGQVVMVF9NQVRDSF9USFJFU0hPTEQiLCJjb21wYXJlSW1hZ2VzIiwibW9kZSIsImZpcnN0SW1hZ2UiLCJzZWNvbmRJbWFnZSIsIm9wdGlvbnMiLCJpbWcxIiwiQnVmZmVyIiwiZnJvbSIsImltZzIiLCJyZXN1bHQiLCJfIiwidG9Mb3dlciIsInRvTG93ZXJDYXNlIiwiaW1hZ2VVdGlsIiwiZ2V0SW1hZ2VzTWF0Y2hlcyIsImdldEltYWdlc1NpbWlsYXJpdHkiLCJnZXRJbWFnZU9jY3VycmVuY2UiLCJlcnJvcnMiLCJJbnZhbGlkQXJndW1lbnRFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJpc0VtcHR5IiwidmlzdWFsaXphdGlvbiIsInRvU3RyaW5nIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjtBQUFBLE1BQXFCQyxPQUFPLEdBQUcsRUFBL0I7QUFBQSxNQUFtQ0MsVUFBVSxHQUFHLEVBQWhEOzs7QUFFQSxNQUFNQyxtQkFBbUIsR0FBRyxlQUE1QjtBQUNBLE1BQU1DLG1CQUFtQixHQUFHLGVBQTVCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsZUFBNUI7O0FBRUEsTUFBTUMsdUJBQXVCLEdBQUcsR0FBaEM7OztBQXVCQU4sUUFBUSxDQUFDTyxhQUFULEdBQXlCLGVBQWVBLGFBQWYsQ0FBOEJDLElBQTlCLEVBQW9DQyxVQUFwQyxFQUFnREMsV0FBaEQsRUFBNkRDLE9BQU8sR0FBRyxFQUF2RSxFQUEyRTtBQUNsRyxRQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTCxVQUFaLEVBQXdCLFFBQXhCLENBQWI7QUFDQSxRQUFNTSxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixXQUFaLEVBQXlCLFFBQXpCLENBQWI7QUFDQSxNQUFJTSxNQUFNLEdBQUcsRUFBYjs7QUFDQSxVQUFRQyxnQkFBRUMsT0FBRixDQUFVVixJQUFWLENBQVI7QUFDRSxTQUFLTCxtQkFBbUIsQ0FBQ2dCLFdBQXBCLEVBQUw7QUFDRUgsTUFBQUEsTUFBTSxHQUFHLE1BQU1JLHlCQUFVQyxnQkFBVixDQUEyQlQsSUFBM0IsRUFBaUNHLElBQWpDLEVBQXVDSixPQUF2QyxDQUFmO0FBQ0E7O0FBQ0YsU0FBS1AsbUJBQW1CLENBQUNlLFdBQXBCLEVBQUw7QUFDRUgsTUFBQUEsTUFBTSxHQUFHLE1BQU1JLHlCQUFVRSxtQkFBVixDQUE4QlYsSUFBOUIsRUFBb0NHLElBQXBDLEVBQTBDSixPQUExQyxDQUFmO0FBQ0E7O0FBQ0YsU0FBS04sbUJBQW1CLENBQUNjLFdBQXBCLEVBQUw7QUFFRUgsTUFBQUEsTUFBTSxHQUFHLE1BQU1JLHlCQUFVRyxrQkFBVixDQUE2QlgsSUFBN0IsRUFBbUNHLElBQW5DLEVBQXlDSixPQUF6QyxDQUFmO0FBQ0E7O0FBQ0Y7QUFDRSxZQUFNLElBQUlhLGVBQU9DLG9CQUFYLENBQWlDLElBQUdqQixJQUFLLHVDQUFULEdBQ25DLFFBQU9rQixJQUFJLENBQUNDLFNBQUwsQ0FBZSxDQUFDeEIsbUJBQUQsRUFBc0JDLG1CQUF0QixFQUEyQ0MsbUJBQTNDLENBQWYsQ0FBZ0YsdUJBRHBGLENBQU47QUFaSjs7QUFlQSxNQUFJLENBQUNZLGdCQUFFVyxPQUFGLENBQVVaLE1BQU0sQ0FBQ2EsYUFBakIsQ0FBTCxFQUFzQztBQUNwQ2IsSUFBQUEsTUFBTSxDQUFDYSxhQUFQLEdBQXVCYixNQUFNLENBQUNhLGFBQVAsQ0FBcUJDLFFBQXJCLENBQThCLFFBQTlCLENBQXZCO0FBQ0Q7O0FBQ0QsU0FBT2QsTUFBUDtBQUNELENBdkJEOztBQXlCQWUsTUFBTSxDQUFDQyxNQUFQLENBQWM5QixVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi8uLi9wcm90b2NvbC9lcnJvcnMnO1xuaW1wb3J0IHsgaW1hZ2VVdGlsIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29uc3QgTUFUQ0hfRkVBVFVSRVNfTU9ERSA9ICdtYXRjaEZlYXR1cmVzJztcbmNvbnN0IEdFVF9TSU1JTEFSSVRZX01PREUgPSAnZ2V0U2ltaWxhcml0eSc7XG5jb25zdCBNQVRDSF9URU1QTEFURV9NT0RFID0gJ21hdGNoVGVtcGxhdGUnO1xuXG5jb25zdCBERUZBVUxUX01BVENIX1RIUkVTSE9MRCA9IDAuNDtcblxuLyoqXG4gKiBQZXJmb3JtcyBpbWFnZXMgY29tcGFyaXNvbiB1c2luZyBPcGVuQ1YgZnJhbWV3b3JrIGZlYXR1cmVzLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhhdCBib3RoIE9wZW5DViBmcmFtZXdvcmsgYW5kIG9wZW5jdjRub2RlanNcbiAqIG1vZHVsZSBhcmUgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lIHdoZXJlIEFwcGl1bSBzZXJ2ZXIgaXMgcnVubmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbW9kZSAtIE9uZSBvZiBwb3NzaWJsZSBjb21wYXJpc29uIG1vZGVzOlxuICogbWF0Y2hGZWF0dXJlcywgZ2V0U2ltaWxhcml0eSwgbWF0Y2hUZW1wbGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGZpcnN0SW1hZ2UgLSBCYXNlNjQtZW5jb2RlZCBpbWFnZSBmaWxlLlxuICogQWxsIGltYWdlIGZvcm1hdHMsIHRoYXQgT3BlbkNWIGxpYnJhcnkgaXRzZWxmIGFjY2VwdHMsIGFyZSBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2Vjb25kSW1hZ2UgLSBCYXNlNjQtZW5jb2RlZCBpbWFnZSBmaWxlLlxuICogQWxsIGltYWdlIGZvcm1hdHMsIHRoYXQgT3BlbkNWIGxpYnJhcnkgaXRzZWxmIGFjY2VwdHMsIGFyZSBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gez9PYmplY3R9IG9wdGlvbnMgW3t9XSAtIFRoZSBjb250ZW50IG9mIHRoaXMgZGljdGlvbmFyeSBkZXBlbmRzXG4gKiBvbiB0aGUgYWN0dWFsIGBtb2RlYCB2YWx1ZS4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9uIGBhcHBpdW0tc3VwcG9ydGBcbiAqIG1vZHVsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHJldHVybnMge09iamVjdH0gVGhlIGNvbnRlbnQgb2YgdGhlIHJlc3VsdGluZyBkaWN0aW9uYXJ5IGRlcGVuZHNcbiAqIG9uIHRoZSBhY3R1YWwgYG1vZGVgIGFuZCBgb3B0aW9uc2AgdmFsdWVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb25cbiAqIGBhcHBpdW0tc3VwcG9ydGAgbW9kdWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgcmVxdWlyZWQgT3BlbkNWIG1vZHVsZXMgYXJlIG5vdCBpbnN0YWxsZWQgb3JcbiAqIGlmIGBtb2RlYCB2YWx1ZSBpcyBpbmNvcnJlY3Qgb3IgaWYgdGhlcmUgd2FzIGFuIHVuZXhwZWN0ZWQgaXNzdWUgd2hpbGVcbiAqIG1hdGNoaW5nIHRoZSBpbWFnZXMuXG4gKi9cbmNvbW1hbmRzLmNvbXBhcmVJbWFnZXMgPSBhc3luYyBmdW5jdGlvbiBjb21wYXJlSW1hZ2VzIChtb2RlLCBmaXJzdEltYWdlLCBzZWNvbmRJbWFnZSwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGltZzEgPSBCdWZmZXIuZnJvbShmaXJzdEltYWdlLCAnYmFzZTY0Jyk7XG4gIGNvbnN0IGltZzIgPSBCdWZmZXIuZnJvbShzZWNvbmRJbWFnZSwgJ2Jhc2U2NCcpO1xuICBsZXQgcmVzdWx0ID0ge307XG4gIHN3aXRjaCAoXy50b0xvd2VyKG1vZGUpKSB7XG4gICAgY2FzZSBNQVRDSF9GRUFUVVJFU19NT0RFLnRvTG93ZXJDYXNlKCk6XG4gICAgICByZXN1bHQgPSBhd2FpdCBpbWFnZVV0aWwuZ2V0SW1hZ2VzTWF0Y2hlcyhpbWcxLCBpbWcyLCBvcHRpb25zKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgR0VUX1NJTUlMQVJJVFlfTU9ERS50b0xvd2VyQ2FzZSgpOlxuICAgICAgcmVzdWx0ID0gYXdhaXQgaW1hZ2VVdGlsLmdldEltYWdlc1NpbWlsYXJpdHkoaW1nMSwgaW1nMiwgb3B0aW9ucyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1BVENIX1RFTVBMQVRFX01PREUudG9Mb3dlckNhc2UoKTpcbiAgICAgIC8vIGZpcnN0SW1hZ2UvaW1nMSBpcyB0aGUgZnVsbCBpbWFnZSBhbmQgc2Vjb25kSW1hZ2UvaW1nMiBpcyB0aGUgcGFydGlhbCBvbmVcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGltYWdlVXRpbC5nZXRJbWFnZU9jY3VycmVuY2UoaW1nMSwgaW1nMiwgb3B0aW9ucyk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJyR7bW9kZX0nIGltYWdlcyBjb21wYXJpc29uIG1vZGUgaXMgdW5rbm93bi4gYCArXG4gICAgICAgIGBPbmx5ICR7SlNPTi5zdHJpbmdpZnkoW01BVENIX0ZFQVRVUkVTX01PREUsIEdFVF9TSU1JTEFSSVRZX01PREUsIE1BVENIX1RFTVBMQVRFX01PREVdKX0gbW9kZXMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICBpZiAoIV8uaXNFbXB0eShyZXN1bHQudmlzdWFsaXphdGlvbikpIHtcbiAgICByZXN1bHQudmlzdWFsaXphdGlvbiA9IHJlc3VsdC52aXN1YWxpemF0aW9uLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycywgREVGQVVMVF9NQVRDSF9USFJFU0hPTEQsIE1BVENIX1RFTVBMQVRFX01PREUgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2ltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLiJ9