public void move_by(int x, int y) {
takeScreenshot();
Point current_location = getLocation();
action("Current position of element '" + current_location + "', Moving by (x, y) = (" + x + ", " + y + ")");
Actions drag = new Actions(browser.driver());
try {
drag.dragAndDropBy(_nativeWebElement(), x, y).build().perform();
Point new_location = getLocation();
action("New position of element '" + new_location + "', Moved by (x, y) = (" + x + ", " + y + ")");
} catch (org.openqa.selenium.interactions.MoveTargetOutOfBoundsException mtoobe) {
error("Cannot move element '" + current_location + "', to (x, y) = (" + x + ", " + y + "), got org.openqa.selenium.interactions.MoveTargetOutOfBoundsException");
}