用pywinauto实现QT自动化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用pywinauto实现QT自动化相关的知识,希望对你有一定的参考价值。

我试图使用pywinauto自动化一个QT应用程序,问题是pywinauto似乎无法点击或选择大多数对象,当它这样做,他们似乎是完全随机的那些我指定。即使使用诸如"点击输入"正确执行,但项目从未被实际点击。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")

编辑:做了一些建议的修改,但问题仍然存在。点击事件似乎没有带来任何错误,但实际上却没有发生 "点击"。

答案

在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帮助我解决了这个问题。

问题链接

以上是关于用pywinauto实现QT自动化的主要内容,如果未能解决你的问题,请参考以下文章

python基于pywinauto实现PC客户端自动化

python基于pywinauto实现PC客户端自动化

python自动化框架:pywinauto实现博客之星自动化评论

python自动化框架:pywinauto实现博客之星自动化评论

python自动化框架:pywinauto实现博客之星自动化评论

pywinauto处理UI自动化