Python. Кликаем по координатам (WebScrapping) [6]

Думал что закончил с Selenium, как выяснилось нет. Поэтому выйдет еще пару статей по данной библиотеке.

Предисловие.

В данном уроке мы научимся кликать по координатам окна с помощью Selenium. Данная возможность будет полезна, при написании ботов для онлайн игр.

Приступаем.

Для работы с мышью нам потребуется модуль ActionChains.

ActionChains — это модуль позволяющий производить низкоуровневые операции такие как:

  • движение мышки
  • нажатие мышки (ЛКМ)
  • работа с контекстным меню (ПКМ)

При вызове методов класса ActionChains, методы помещаются в очередь. Вызываются они методом perform(), в порядке очереди. Подробнее в документации.

Рисуем точку на экране.

Перепишите следующий код:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome('chromedriver.exe')
driver.set_window_size(500, 500)
driver.get('http://paintonline.editaraudio.com/')
ActionChains(driver).move_by_offset(250, 250).click().perform()

Сохраните данный код, поместив в одной папке с chromedriver.exe (браузер Google Chome должен быть установлен). Разберем код.

from selenium.webdriver.common.action_chains import ActionChains

Импортируем ActionChains

driver.set_window_size(500, 500)

Устанавливаем размер окна браузера в 500×500 пикселей.

driver.get('http://paintonline.editaraudio.com/')

Заходим на сайт http://paintonline.editaraudio.com/

ActionChains(driver).move_by_offset(250, 250).click().perform()

Здесь мы делаем последовательность действий.

  • move_by_offset(250, 250) — передвигаем курсор на 250 пикселей вправо и 250 пикселей вниз.
  • click() — кликаем.
  • perform() — выполняем все действия.

В итоге, мы нарисовали точку на экране.

Рисуем 2 точки на экране.

Добавьте следующие строки к себе в код:

ActionChains(driver).reset_actions()
ActionChains(driver).move_by_offset(250, 300).click().perform()

Здесь, мы сбросили положение курсора reset_actions(), теперь положение равно 0,0. Затем, кликнули по координатам (250, 300) тем самым, нарисовав точку на холсте.

Чертим линию на экране.

Удалите предыдущие вызовы ActionChains, и добавьте следующий.

ActionChains(driver).move_by_offset(250, 250).click_and_hold().move_by_offset(20, 20).perform()

Разберем каждое действие:

  • move_by_offset(250, 250) — передвигаем курсор на координаты 250, 250
  • click_and_hold() — зажимаем ЛКМ
  • move_by_offset(20, 20) — двигаем курсор на 20 пикселей вправо, и 20 вниз, на координаты 270, 270.
  • perform() — выполняем все действия.

В итоге, получилась диагональная линия.

Заключение

Используя ActionChains, можно написать бота, практически, для любой игры.

Начиная от кликеров, по типу alien worlds.

Заканчивая фермами, с возможностью drag_and_drop.

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!