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

Другие вопросы по тегам