UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

64 lines (54 loc) 6.76 kB
/** * * Move the mouse by an offset of the specificed element. If no element is specified, * the move is relative to the current mouse cursor. If an element is provided but no * offset, the mouse will be moved to the center of the element. If the element is not * visible, it will be scrolled into view. * * @param {String} selector element to move to * @param {Number} xoffset X offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element. * @param {Number} yoffset Y offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element. * * @uses protocol/element, protocol/elementIdLocation * @type action * */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var moveToObject = function moveToObject(selector) { var _this = this; var xoffset = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; var yoffset = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; /** * check for offset params */ var hasOffsetParams = true; if (typeof xoffset !== 'number' && typeof yoffset !== 'number') { hasOffsetParams = false; } if (this.isMobile) { return this.element(selector).then(function (res) { return _this.elementIdSize(res.value.ELEMENT).then(function (size) { return _this.elementIdLocation(res.element.value.ELEMENT).then(function (location) { return { size: size, location: location }; }); }); }).then(function (res) { var x = res.location.value.x; var y = res.location.value.y; if (hasOffsetParams) { x = res.location.value.x - res.size.value.width / 2 + xoffset; y = res.location.value.y - res.size.value.height / 2 + yoffset; } return _this.touchMove(x, y); }); } return this.element(selector).then(function (res) { return _this.moveTo(res.value.ELEMENT, xoffset, yoffset); }); }; exports['default'] = moveToObject; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9tb3ZlVG9PYmplY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLElBQUksWUFBWSxHQUFHLFNBQWYsWUFBWSxDQUFhLFFBQVEsRUFBNEI7OztRQUExQixPQUFPLHlEQUFHLENBQUM7UUFBRSxPQUFPLHlEQUFHLENBQUM7Ozs7O0FBSTNELFFBQUksZUFBZSxHQUFHLElBQUksQ0FBQTtBQUMxQixRQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7QUFDNUQsdUJBQWUsR0FBRyxLQUFLLENBQUE7S0FDMUI7O0FBRUQsUUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO0FBQ2YsZUFBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUc7bUJBQ25DLE1BQUssYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsSUFBSTt1QkFDNUMsTUFBSyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxRQUFRLEVBQUs7QUFDakUsMkJBQU8sRUFBRSxJQUFJLEVBQUosSUFBSSxFQUFFLFFBQVEsRUFBUixRQUFRLEVBQUUsQ0FBQTtpQkFDNUIsQ0FBQzthQUFBLENBQ0w7U0FBQSxDQUNKLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLO0FBQ1osZ0JBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUM1QixnQkFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBOztBQUU1QixnQkFBSSxlQUFlLEVBQUU7QUFDakIsaUJBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQUFBQyxHQUFHLE9BQU8sQ0FBQTtBQUMvRCxpQkFBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxBQUFDLEdBQUcsT0FBTyxDQUFBO2FBQ25FOztBQUVELG1CQUFPLE1BQUssU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUM5QixDQUFDLENBQUE7S0FDTDs7QUFFRCxXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLO0FBQ3hDLGVBQU8sTUFBSyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0tBQzFELENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLFlBQVkiLCJmaWxlIjoibW92ZVRvT2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogTW92ZSB0aGUgbW91c2UgYnkgYW4gb2Zmc2V0IG9mIHRoZSBzcGVjaWZpY2VkIGVsZW1lbnQuIElmIG5vIGVsZW1lbnQgaXMgc3BlY2lmaWVkLFxuICogdGhlIG1vdmUgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgbW91c2UgY3Vyc29yLiBJZiBhbiBlbGVtZW50IGlzIHByb3ZpZGVkIGJ1dCBub1xuICogb2Zmc2V0LCB0aGUgbW91c2Ugd2lsbCBiZSBtb3ZlZCB0byB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50LiBJZiB0aGUgZWxlbWVudCBpcyBub3RcbiAqIHZpc2libGUsIGl0IHdpbGwgYmUgc2Nyb2xsZWQgaW50byB2aWV3LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvciBlbGVtZW50IHRvIG1vdmUgdG9cbiAqIEBwYXJhbSB7TnVtYmVyfSB4b2Zmc2V0ICBYIG9mZnNldCB0byBtb3ZlIHRvLCByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBlbGVtZW50LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgbW91c2Ugd2lsbCBtb3ZlIHRvIHRoZSBtaWRkbGUgb2YgdGhlIGVsZW1lbnQuXG4gKiBAcGFyYW0ge051bWJlcn0geW9mZnNldCAgWSBvZmZzZXQgdG8gbW92ZSB0bywgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgZWxlbWVudC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIG1vdXNlIHdpbGwgbW92ZSB0byB0aGUgbWlkZGxlIG9mIHRoZSBlbGVtZW50LlxuICpcbiAqIEB1c2VzIHByb3RvY29sL2VsZW1lbnQsIHByb3RvY29sL2VsZW1lbnRJZExvY2F0aW9uXG4gKiBAdHlwZSBhY3Rpb25cbiAqXG4gKi9cblxubGV0IG1vdmVUb09iamVjdCA9IGZ1bmN0aW9uIChzZWxlY3RvciwgeG9mZnNldCA9IDAsIHlvZmZzZXQgPSAwKSB7XG4gICAgLyoqXG4gICAgICogY2hlY2sgZm9yIG9mZnNldCBwYXJhbXNcbiAgICAgKi9cbiAgICB2YXIgaGFzT2Zmc2V0UGFyYW1zID0gdHJ1ZVxuICAgIGlmICh0eXBlb2YgeG9mZnNldCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHlvZmZzZXQgIT09ICdudW1iZXInKSB7XG4gICAgICAgIGhhc09mZnNldFBhcmFtcyA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChzZWxlY3RvcikudGhlbigocmVzKSA9PlxuICAgICAgICAgICAgdGhpcy5lbGVtZW50SWRTaXplKHJlcy52YWx1ZS5FTEVNRU5UKS50aGVuKChzaXplKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudElkTG9jYXRpb24ocmVzLmVsZW1lbnQudmFsdWUuRUxFTUVOVCkudGhlbigobG9jYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc2l6ZSwgbG9jYXRpb24gfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICBsZXQgeCA9IHJlcy5sb2NhdGlvbi52YWx1ZS54XG4gICAgICAgICAgICBsZXQgeSA9IHJlcy5sb2NhdGlvbi52YWx1ZS55XG5cbiAgICAgICAgICAgIGlmIChoYXNPZmZzZXRQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICB4ID0gcmVzLmxvY2F0aW9uLnZhbHVlLnggLSAocmVzLnNpemUudmFsdWUud2lkdGggLyAyKSArIHhvZmZzZXRcbiAgICAgICAgICAgICAgICB5ID0gcmVzLmxvY2F0aW9uLnZhbHVlLnkgLSAocmVzLnNpemUudmFsdWUuaGVpZ2h0IC8gMikgKyB5b2Zmc2V0XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvdWNoTW92ZSh4LCB5KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQoc2VsZWN0b3IpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb3ZlVG8ocmVzLnZhbHVlLkVMRU1FTlQsIHhvZmZzZXQsIHlvZmZzZXQpXG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgbW92ZVRvT2JqZWN0XG4iXX0=