Библиотека автоматизации Python GUI для имитации взаимодействия пользователя с приложениями.

Я ищу библиотеку Python, которая может помочь с задачами автоматизации окон (либо в macOS, либо в Linux).

Под автоматизацией я подразумеваю поиск окна приложения/игры, получение его содержимого и возможность отправки событий мыши и клавиатуры.

Вот аналогичный код: jBugman/minesweeper на GitHub , цель которого — играть в игру Minesweeper, имитируя события взаимодействия с пользователем.

Я ищу что-то похожее, но в виде библиотеки/фреймворка, которую я могу использовать для аналогичного использования (более универсальный способ). Может работать с Quartz или другими подобными библиотеками. Предпочтительна совместимость с macOS, но я также открыт для Linux (X).

Вы хотите только имитировать пользовательский ввод или также хотите проверить результат? Например, если вы имитируете щелчок на «Файл/открыть», убедитесь, что появляется диалоговое окно выбора файла?
В основном для имитации пользовательского ввода (мышь/клавиатура), например для тестирования приложений автоматизации или игры, поэтому проверка результатов также должна быть приятной, но я открыт для предложений.
«Нахождение окна приложения/игры, получение его содержимого», по-видимому, подразумевает проверку вывода ... Похоже, вы ищете что-то вроде меня в этом вопросе
@Mawg Да, мы ищем нечто подобное, однако вы ищете любой инструмент/библиотеку на любом языке для Linux, а я ищу библиотеку, которую можно было бы специально интегрировать в Python (либо библиотеку Python, либо ее использование внутри Python).
Я был бы очень доволен Python. Ого, если мы найдем что-то не Python, мы можем добавить обертку. Я думаю, что вам, возможно, придется расширить поиск, так как я не нашел ничего удовлетворительного :-( Если вы это сделаете, пожалуйста , опубликуйте подробности.

Ответы (3)

На macOs есть пятом/АТОМак . Это позволяет получить доступ к свойствам текста и значимым действиям без прямого доступа к клавиатуре. Конечно, вам нужно добавить свое приложение в список доступных приложений в настройках macOs . Мой ученик написал скрипт, автоматизирующий некоторые шаги в iTunes . Единственная проблема заключается в том, что гибкие ожидания не работают должным образом, поэтому ему пришлось использовать жестко закодированные time.sleepвызовы.

Существует не так много инструментов с открытым исходным кодом для доступа к свойствам текста. В Linux это пяцпи2, хотя пользоваться им не так просто. LDTP может быть проще, но он не выглядит популярным. У него есть совместимые с API проекты для Windows и macOs (это пятом на macOs). Но я бы сказал, что место для популярного кроссплатформенного текстового инструмента автоматизации в open-source сегменте вакантно.

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

Есть Сикули .

SikuliX автоматизирует все, что вы видите на экране вашего настольного компьютера под управлением Windows, Mac или Linux/Unix. Он использует распознавание изображений на основе OpenCV для идентификации и управления компонентами графического интерфейса. Это удобно в тех случаях, когда нет простого доступа к внутренним компонентам графического интерфейса или исходному коду приложения или веб-страницы, с которой вы хотите действовать.

Он поддерживает язык Python уровня 2.7 (поддерживается Jython).

Существует несколько библиотек Python для автоматизации пользовательского ввода, например:

  • PyAutoGUI (работает в Windows, macOS и Linux)

    Модуль Python для программного управления мышью и клавиатурой.

  • PYAHK AutoHotKey (AHK обычно для Windows, но может использоваться с Wine )

    AutoHotKey — мощный автомат задач со встроенным ужасным языком сценариев. Разрешить обмен данными между обоими механизмами сценариев и выполнение команд AHK из Python.

  • Python-ввод (GPLv3+)

    Pythonic API для модуля ядра uinput Linux. Это позволяет подключать драйверы устройств пользовательского пространства к ядру. На практике Python-uinput упрощает создание виртуальных джойстиков, клавиатур и мышей для программной генерации произвольных событий ввода.


Существуют также некоторые инструменты командной строки, которые можно запускать из Python для взаимодействия с приложениями с графическим интерфейсом, например xdotool. Его можно использовать для управления мышью и клавиатурой, а также поддерживает действия оконного менеджера, такие как перемещение, активация и другие действия в окнах.

Общие инструменты автоматизации для Linux см. также: GUI scipting for Linux .

Смотрите также: