Нажатие на координаты без идентификации элемента - PullRequest
19 голосов
/ 21 июля 2011

Как часть моего теста на селен для функции входа в систему, я хотел бы нажать кнопку, указав ее координаты и дав указание селену щелкнуть по этим координатам.Это будет сделано без фактической идентификации самого элемента (через id, xpath и т. Д.).

Я понимаю, что есть и другие, более эффективные способы запуска команды щелчка, но я собираюсь специально использовать этот подход, чтобы наилучшим образом соответствовать опыту пользователя.Спасибо.

Ответы [ 14 ]

0 голосов
/ 15 февраля 2018
    WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
    int height = button.getSize().getHeight();
    int width = button.getSize().getWidth();
    Actions act = new Actions(driver);
    act.moveToElement(button).moveByOffset((width/2)+2,(height/2)+2).click();
0 голосов
/ 10 февраля 2017

Цепочки действий могут быть немного привередливыми. Вы также можете достичь этого, выполнив javascript.

self.driver.execute_script('el = document.elementFromPoint(440, 120); el.click();')
0 голосов
/ 25 июля 2011

Селен не позволит вам сделать это.

0 голосов
/ 21 июля 2011

Если вы видите исходный код страницы, всегда лучше всего обратиться к кнопке по ее идентификатору или атрибуту NAME.Например, у вас есть кнопка «Войти», которая выглядит следующим образом:

 <input type="submit" name="login" id="login" />

В таком случае лучший способ сделать

selenium.click(id="login");

Просто из любопытства - разве это не базовая аутентификация HTTP?В этом случае, возможно, посмотрите на это: http://code.google.com/p/selenium/issues/detail?id=34

...