I have a canvas element and I am trying to mouse hover on the Canvas element with below code. It works perfectly fine in Chrome. However in headless browser, there is no error at moveToElement step but mouse hover has not been performed at the offset I wanted. I even set the window size for which the offsets work, still it is not working as expected
Dimension bd = new Dimension(1296, 696);
driver.manage().window().setSize(bd);
canvasElementDimensions = driver.manage().window().getSize().toString();
WebElement canvas = driver.findElement(By.xpath(canvasElementXpath));
Dimension canvasDimension = canvas.getSize();
int canvas_center_x = canvasDimension.getWidth()/2;
int canvas_center_y = canvasDimension.getHeight()/2;
int mouse_hover_x = (canvas_center_x/-9)*2;
canvasElementXOffset = String.valueOf(mouse_hover_x);
int mouse_hover_y = (canvas_center_y/-9)*2;
canvasElementYOffset = String.valueOf(mouse_hover_y);
Actions action = new Actions(driver);
action.moveToElement(canvas, mouse_hover_x, mouse_hover_y)
.perform();