用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实现博客之星自动化评论
python自动化框架:pywinauto实现博客之星自动化评论