Автоматизация QT с pywinauto - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь автоматизировать приложение QT с помощью pywinauto, проблема в том, что pywinauto кажется неспособным щелкнуть или выбрать большинство объектов, и когда это происходит, они кажутся совершенно случайными по сравнению с указанными мною. Даже при использовании таких функций, как " click_input ", они выполняются правильно, но элемент никогда не щелкается. Очевидно, Pywinauto распознает кнопку, которую я пытаюсь нажать, и даже печатает ее как объект " pywinauto.application.WindowSpecification ". Я заметил, что у pywinauto есть некоторые проблемы с приложениями QT, поэтому любая помощь будет принята с благодарностью. Спасибо.

anki_App = Application(backend="uia").start(anki_Path)
anki_App.top_window().wait("Visible") #Wait for Anki's sync to server
anki = anki_App.window(title_re=r".* - Anki", class_name="AnkiQt")
anki['Import File'].click_input()

Фрагмент из результатов anki.print_control_identifiers () , поскольку содержимое слишком велико.

Button - 'Import File'    (L1751, T875, R1867, B910)
['Import File', 'Import FileButton', 'Button6']
child_window(title="Import File", control_type="Button")

Редактировать: внесены некоторые рекомендуемые изменения, но проблема по-прежнему остается. Кажется, что событие щелчка не приводит к ошибкам, но на самом деле никакого щелчка не происходит.

1 Ответ

0 голосов
/ 22 апреля 2020

После обсуждения в сообществе Pywinsauto github я смог решить его следующим образом:

anki_App = Application(backend="uia").start(anki_Path)
anki_App.top_window().wait("Visible") #Wait for Anki's sync to server
anki = anki_App.window(title_re=r".* - Anki", class_name="AnkiQt")
anki['Browse'].click_input(coords=(anki['Browse'].rectangle().left -1, anki['Browse'].rectangle().top -1), absolute = True)

Проблема заключалась в том, что координаты были неправильными. Хотя они были довольно близки, так что щелкнув по верхнему левому углу, все, что нужно было сделать. Еще раз большое спасибо пользователю airelil за помощь в выяснении проблемы.

Ссылка на проблему

...