module Selenium::WebDriver::PointerActions

def move_to(element, right_by = nil, down_by = nil, device: nil)

def move_to(element, right_by = nil, down_by = nil, device: nil)
  pointer = get_pointer(device)
  # New actions offset is from center of element
  if right_by || down_by
    size = element.size
    left_offset = (size[:width] / 2).to_i
    top_offset = (size[:height] / 2).to_i
    left = -left_offset + (right_by || 0)
    top = -top_offset + (down_by || 0)
  else
    left = 0
    top = 0
  end
  pointer.create_pointer_move(duration: DEFAULT_MOVE_DURATION,
                              x: left,
                              y: top,
                              element: element)
  tick(pointer)
  self
end