/
Вопросы и ответы
/
Тестирование
/

Как кликнуть по координатам selenium python

Как кликнуть по координатам selenium python

4 года назад

Nikolai Gagarinov

Ответы

0

Для клика по заданным координатам используется метод ActionChains библиотеки Selenium в Python. Ниже приведен пример кода, показывающий, как кликнуть на указанные координаты на веб-странице:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

# Инициализация драйвера браузера
driver = webdriver.Chrome()

# Открытие веб-страницы
driver.get("https://www.example.com")

# Получение элемента на веб-странице
element = driver.find_element_by_xpath("//xpath/to/element")

# Создание объекта ActionChains и выполнение клика по заданным координатам
action = ActionChains(driver)
action.move_to_element_with_offset(element, x_offset, y_offset).click().perform()

# Закрытие браузера
driver.quit()

Где x_offset и y_offset - это координаты относительно верхнего левого угла элемента, на который нужно кликнуть. Важно отметить, что использование клика по координатам является необычным методом и не рекомендуется для обычного использования в автоматизации тестирования. Более предпочтительным способом будет использование методов клика по элементам или выполнение JavaScript-скриптов для взаимодействия с веб-страницей.

2 года назад

Elena Gromova

0

Кликнуть по координатам в Selenium можно через ActionChains. В Selenium 4 удобнее всего метод move_to_location(x, y) — он ведёт курсор к точке относительно левого верхнего угла окна:

1
2
3
4
5
6
7
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://example.com")

ActionChains(driver).move_to_location(200, 150).click().perform()

Метод move_to_location появился в Selenium 4. Если Python пишет, что такого атрибута нет, обновите библиотеку: pip install -U selenium.

Клик со смещением от элемента

Координаты чаще задают относительно элемента — так тест не ломается при изменении размера окна. move_to_element_with_offset отсчитывает смещение от центра элемента:

1
2
canvas = driver.find_element("id", "canvas")
ActionChains(driver).move_to_element_with_offset(canvas, 30, -20).click().perform()

Клик через JavaScript

Если обычный клик не срабатывает, найдите элемент в точке и кликните скриптом:

1
2
3
driver.execute_script(
    "document.elementFromPoint(arguments[0], arguments[1]).click();", 200, 150
)

Такой клик не двигает курсор, поэтому не вызывает события наведения.

Частые ошибки

  • MoveTargetOutOfBoundsException — точка за пределами видимой области. Прокрутите страницу или увеличьте окно: driver.set_window_size(1920, 1080).
  • Клик попадает не туда — координаты считаются от окна, без учёта прокрутки. Проверьте прокрутку через driver.execute_script("return window.scrollY").
  • Клик по координатам — крайняя мера. Если у элемента есть локатор, кликайте по элементу: driver.find_element(...).click().

Автотесты на Selenium разбирают в курсе «Автоматизированное тестирование на Python с Selenium».

24 дня назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845