Python автоматизирует нажатие клавиши QtGUI
У меня есть сценарий Python с разделом ниже:
for index in range(1,10):
os.system('./test')
os.system('xdotool key Return')
Я хочу запустить исполняемый файл./test, который вызывает QtGUI. В этом графическом интерфейсе появляется кнопка подсказки нажатия клавиши. Я хочу автоматизировать нажатие этой клавиши в графическом интерфейсе, чтобы продолжить выполнение.
Мой скрипт на Python запускает исполняемый файл, появляется приглашение с графическим интерфейсом и нажатие клавиши не вводится до тех пор, пока не будет запущен исполняемый файл. Есть ли способ это исправить?
2 ответа
os.system
не возвращается, пока не завершится дочерний процесс. Тебе нужно subprocess.Popen
, Это также хорошая идея sleep
за некоторое время до отправки нажатий клавиш (дочернему процессу может потребоваться некоторое время, чтобы подготовиться к принятию пользовательского ввода):
from subprocess import Popen
from time import sleep
for index in range(1,10):
# start the child
process = Popen('./test')
# sleep to allow the child to draw its buttons
sleep(.333)
# send the keystroke
os.system('xdotool key Return')
# wait till the child exits
process.wait()
Я не уверен, что вам нужна последняя строка. Если все 9 дочерних процессов должны остаться в живых - удалите их.
Пожалуйста, попробуйте Pyautogui!
Вы можете найти более подробную информацию здесь: https://pyautogui.readthedocs.io/en/latest/quickstart.html#mouse-functions
Вы также можете использовать ClointFusion, который разработан с использованием Pyautogui среди других пакетов. Подробнее о ClointFusion: https://github.com/ClointFusion/ClointFusion#readme