В статье рассказывается:
- Зачем и кому это нужно
- Инструменты питониста для разных платформ
- Как это работает: примеры
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Сегодня день рождения у Гвидо ван Россума, создателя Python. Поздравляем! Самое время поговорить о его детище и затронуть животрепещущую тему: как в Питоне имитировать нажатия клавиш при создании ботов.
Зачем и кому это нужно
Поводы симулировать нажатие клавиш:
- автоматизация — создание ботов для сайтов, приложений и игр. Пример: бот для автоматического заполнения форм или кормления/лечения игровых персонажей;
- тестирование десктопных приложений — перебор возможных действий пользователя и реакций программы;
- доступность — адаптация интерфейса для людей с ограниченными возможностями здоровья, в том числе за счёт эмуляции мыши (ведь без зрения ею не воспользуешься);
- оптимизация — переназначение стандартных клавиш и/или замена недостающих кнопок физической клавиатуры.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Инструменты питониста для разных платформ
Для симуляции событий клавиатуры и мыши есть кроссплатформенный модуль PyUserInput, который работает поверх библиотек и фрейморков:
- Xlib — в Linux,
- Quartz и AppKit — на Mac,
- pywin32, pyHook — в Windows.
Для Windows также стоит отметить:
pyautoit — это Python API к средству автоматизации AutoIt;
pywinauto — набор модулей, который автоматизирует взаимодействие с Microsoft Windows GUI. Библиотека написана на чистом Python — простейшие её функции по обработке событий мыши и клавиатуры работают и в Linux. Но более сложные возможности для работы с текстом заточены именно под Windows и доступны только там.
Скачать файлАктуальные версии этих инструментов поддерживают Python 3, более ранние — Python 2.
Как это работает: примеры
В директории examples каталога pywinauto на GitHub собраны два десятка наглядных примеров по использованию библиотеки. С их помощью вы можете прямо сейчас создавать ботов, которые умеют устанавливать/удалять программы, скачивать web-страницы, перетаскивать файлы между окнами, пакетно обрабатывать изображения в MS Paint и решать другие задачи.
на обучение «Python-разработчик» до 29 декабря
Новички оценят читаемость кода:
from pywinauto.application import Application
# Запускаем целевое приложение - обычный блокнот
app = Application().start("notepad.exe")
# Выбираем пункт меню
app.UntitledNotepad.menu_select("Help->About Notepad")
# Симулируем клик
app.AboutNotepad.OK.click()
# Вводим текст
app.UntitledNotepad.Edit.type_keys("Заработало!", with_spaces = True)
Хорошо? Представьте, что вам нужно перенастроить приложение из дефолтного состояния на N-ном количестве компьютеров — выбрать нужные пункты меню, заполнить нужные поля. Или вы тестируете свою программу вдоль и поперёк, чтобы выявить сбои при обращении к GUI. Скрипт, который вам потребуется, будет длиннее, чем в примере выше, но по сути усложнится незначительно.
Добавьте сюда возможность работать с любыми приложениями на Win32 GUI и виджетами под интерфейс MS UI Automation.
Устанавливается pywinauto как обычный пакет — через pip install — и автоматически ставит еще несколько полезных компонентов: библиотеку pyWin32, COM-клиент и серверный фрейморк comtypes, библиотеку six, которая обеспечивает совместимость Python 2 (начиная с 2.6) и 3. Всё это пригодится начинающему разработчику не только для создания ботов, но и в разработке собственных программных продуктов.