Один вкладыш - Как получить экранные координаты веб-элемента с помощью Java / Selenium
У меня есть элемент на странице, который постоянно перемещается в случайных положениях, я хотел бы щелкнуть текстовое поле с помощью Selenium (что достижимо с помощью findElement (By.id ("btn")). click), но я бы хотел использовать здесь класс Robot и перейти к конкретному WebElement, используя его координаты .
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить координаты " на экране " для WebElement динамически, что затрудняет мне использование класса роботов
* 1010. * Я пытался использовать класс Point
Point coordinates = driver.findElement(By.id("btn")).getLocation();
int x = coordinates.getX();
int y = coordinates.getY();
Но если я использую их значения в классе Robot, используя метод ниже, указатель перемещается в положение немного дальше, чем заданные координаты, и это, по-видимому, потому что текущие координаты находятся на уровне браузера, тогда как метод mouseMove находится на уровне экрана
Robot robot = new Robot();
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_MASK);
Ниже приведен фрагмент о том, как работает страница, и вы также можете загрузить файл HTML , если хотите поиграть с ним
var btn = document.getElementById("btn");
btn.style.top = Math.floor((Math.random() * 230) + 1) + "px";
btn.style.left = Math.floor((Math.random() * 200) + 1) + "px";
input[type='text'] {
position: absolute;
}
<input placeholder="Click Here to Type Something" type="text" id="btn" name="fname">