async function mouseAction(selector, action, coordinates, options = {}) {
  validate();
  const { mouseAction } = require("./actions/mouseAction");
  const desc = await mouseAction(selector, action, coordinates, options);
  descEvent.emit("success", desc);
}
Performs the given mouse action on the given coordinates. This is useful in performing actions on canvas.

@example
await mouseAction('press', {x:0,y:0})
@example
await mouseAction('move', {x:9,y:9})
@example
await mouseAction('release', {x:9,y:9})
@example
await mouseAction($("#elementID"),'press', {x:0,y:0})
@example
await mouseAction($(".elementClass"),'move', {x:9,y:9})
@example
await mouseAction($("testxpath"),'release', {x:9,y:9})
@example
await mouseAction('release', {x:9, y:9}, {navigationTimeout: 30000})

@param {string} action - Action to be performed on the canvas
@param {Object} coordinates - Coordinates of a point on canvas to perform the action.
@param {Object} options
@param {boolean} [options.waitForNavigation=true] - Wait for navigation after the click. Default navigation timeout is 30 seconds, to override pass `{ navigationTimeout: 10000 }` in `options` parameter.
@param {number} [options.navigationTimeout=30000] - Navigation timeout value in milliseconds for navigation after click.
@param {string[]} [options.waitForEvents = []] - Events available to wait for ['DOMContentLoaded', 'loadEventFired', 'networkAlmostIdle', 'networkIdle', 'firstPaint', 'firstContentfulPaint', 'firstMeaningfulPaint', 'targetNavigated']
@param {number} [options.waitForStart=100] - time to wait for navigation to start. Accepts time in milliseconds.
@param {boolean} [options.force=false] - Set to true to perform action on hidden/disabled elements.