Общее описание задачи
Необходимо разработать модуль автоматизации на Python (с библиотекой PyAutoGUI), который выполняет заранее заданные действия (движение мыши, клик, ввод текста, горячие клавиши) последовательно - пошагово. Ключевое требование: перед каждым шагом запускается верификация активного окна, чтобы исключить ошибочные клики и попадания в неверные элементы интерфейса.
Функциональные требования
Безопасность выполнения
- Перед каждым шагом проводится проверка активного окна/модалки: используется
pyautogui.getWindowsWithTitle() для поиска целевого окна по заголовку. - Проверяются заголовок окна (title), размеры (width/height), фокус.
- Обнаруживаются неожиданные открытые окна, popup, error-диалоги (по признакам заголовка или типовым особенностям окна).
- Если окно не найдено, изменилось, программа закрыта, фокус ушёл к другому приложению или появилось ошибочное окно - автоматизация немедленно останавливается, задача помечается как 'failed'/'stop' с указанием причины.
Управление workflow через веб-интерфейс
- Создаётся отдельная страница
/click-positions в существующем веб-приложении. - Через интерфейс можно настраивать workflow автоматизации пошагово: для каждого шага выбирается тип действия (движение мыши, клик, ввод текста, хоткей) и указываются координаты/параметры.
- Все настройки хранятся в PostgreSQL.
- Изменение workflow происходит без правки кода - только через web.
Интеграция с исполнением
- Действия выполняет скрипт на Python с библиотекой PyAutoGUI.
- Скрипт считывает шаги из базы данных (либо из JSON-файла) и исполняет последовательно.
- При успешном завершении или аварийной остановке статус задачи сохраняется.
Требуется реализовать как сам Python-модуль с верификацией окон, так и web-часть (страницу для настройки шагов) с сохранением в PostgreSQL.