How to move the mouse to an arbitrary point using Protractor/Selenium

Andy picture Andy · Feb 24, 2015 · Viewed 22.7k times · Source

Is it possible to move the mouse to arbitrary coordinates on the screen/relative to an element in Protractor tests? I see people recommend using Robot for Java users, but of course I can't use that in JavaScript.

Answer

Andy picture Andy · Feb 24, 2015

I figured it out for myself...just took some deep digging through Protractor and Selenium documentation. Here is some example code:

  it('should pan plots when you click and drag', function() {
    var plot0 = element(by.css('.plot > canvas'));
    browser.actions()
      .mouseMove(plot0, {x: 100, y: 100}) // 100px from left, 100 px from top of plot0
      .mouseDown()
      .mouseMove({x: 400, y: 0}) // 400px to the right of current location
      .perform();
  });