/**
*
* 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} element Opaque ID assigned to the element to move to, as described in the WebElement JSON Object. If not specified or is null, the offset is relative to current position of the mouse.
* @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.
*
* @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/moveto
* @type protocol
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _utilsErrorHandler = require('../utils/ErrorHandler');
var moveTo = function moveTo(element, xoffset, yoffset) {
var data = {};
if (typeof element === 'string') {
data.element = element;
}
if (typeof xoffset === 'number') {
data.xoffset = xoffset;
}
if (typeof yoffset === 'number') {
data.yoffset = yoffset;
}
/**
* if no attribute is set, throw error
*/
if (Object.keys(data).length === 0) {
throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with moveTo command');
}
return this.requestHandler.create('/session/:sessionId/moveto', data);
};
exports['default'] = moveTo;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvbW92ZVRvLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBZ0I4Qix1QkFBdUI7O0FBRXJELElBQUksTUFBTSxHQUFHLFNBQVQsTUFBTSxDQUFhLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQzlDLFFBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTs7QUFFYixRQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUM3QixZQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtLQUN6Qjs7QUFFRCxRQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUM3QixZQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtLQUN6Qjs7QUFFRCxRQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUM3QixZQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtLQUN6Qjs7Ozs7QUFLRCxRQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNoQyxjQUFNLHFDQUFrQiw4REFBOEQsQ0FBQyxDQUFBO0tBQzFGOztBQUVELFdBQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLENBQUE7Q0FDeEUsQ0FBQTs7cUJBRWMsTUFBTSIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL3Byb3RvY29sL21vdmVUby5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIE1vdmUgdGhlIG1vdXNlIGJ5IGFuIG9mZnNldCBvZiB0aGUgc3BlY2lmaWNlZCBlbGVtZW50LiBJZiBubyBlbGVtZW50IGlzIHNwZWNpZmllZCxcbiAqIHRoZSBtb3ZlIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IG1vdXNlIGN1cnNvci4gSWYgYW4gZWxlbWVudCBpcyBwcm92aWRlZCBidXRcbiAqIG5vIG9mZnNldCwgdGhlIG1vdXNlIHdpbGwgYmUgbW92ZWQgdG8gdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVudC4gSWYgdGhlIGVsZW1lbnRcbiAqIGlzIG5vdCB2aXNpYmxlLCBpdCB3aWxsIGJlIHNjcm9sbGVkIGludG8gdmlldy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZWxlbWVudCAgT3BhcXVlIElEIGFzc2lnbmVkIHRvIHRoZSBlbGVtZW50IHRvIG1vdmUgdG8sIGFzIGRlc2NyaWJlZCBpbiB0aGUgV2ViRWxlbWVudCBKU09OIE9iamVjdC4gSWYgbm90IHNwZWNpZmllZCBvciBpcyBudWxsLCB0aGUgb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIG1vdXNlLlxuICogQHBhcmFtIHtOdW1iZXJ9IHhvZmZzZXQgIFggb2Zmc2V0IHRvIG1vdmUgdG8sIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGVsZW1lbnQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBtb3VzZSB3aWxsIG1vdmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZWxlbWVudC5cbiAqIEBwYXJhbSB7TnVtYmVyfSB5b2Zmc2V0ICBZIG9mZnNldCB0byBtb3ZlIHRvLCByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBlbGVtZW50LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgbW91c2Ugd2lsbCBtb3ZlIHRvIHRoZSBtaWRkbGUgb2YgdGhlIGVsZW1lbnQuXG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb24vOnNlc3Npb25JZC9tb3ZldG9cbiAqIEB0eXBlIHByb3RvY29sXG4gKlxuICovXG5cbmltcG9ydCB7IFByb3RvY29sRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBtb3ZlVG8gPSBmdW5jdGlvbiAoZWxlbWVudCwgeG9mZnNldCwgeW9mZnNldCkge1xuICAgIGxldCBkYXRhID0ge31cblxuICAgIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZGF0YS5lbGVtZW50ID0gZWxlbWVudFxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgeG9mZnNldCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZGF0YS54b2Zmc2V0ID0geG9mZnNldFxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgeW9mZnNldCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZGF0YS55b2Zmc2V0ID0geW9mZnNldFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGlmIG5vIGF0dHJpYnV0ZSBpcyBzZXQsIHRocm93IGVycm9yXG4gICAgICovXG4gICAgaWYgKE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgUHJvdG9jb2xFcnJvcignbnVtYmVyIG9yIHR5cGUgb2YgYXJndW1lbnRzIGRvblxcJ3QgYWdyZWUgd2l0aCBtb3ZlVG8gY29tbWFuZCcpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdEhhbmRsZXIuY3JlYXRlKCcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0bycsIGRhdGEpXG59XG5cbmV4cG9ydCBkZWZhdWx0IG1vdmVUb1xuIl19 |