【发布时间】:2020-04-23 02:31:36
【问题描述】:
我正在尝试使用 pywinauto 自动化 QT 应用程序,问题是 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")
编辑:进行了一些建议的更改,但问题仍然存在。点击事件似乎没有带来任何错误,但实际上没有发生“点击”。
【问题讨论】:
-
嗨!对不起,如果我不清楚,第二个 sn -p 是所有代码,第一个截图显示了 print_control_identifiers 函数的结果。 anki_path 只是应用程序的路径。 apps.ankiweb.net
-
请提供完整的追溯。 “似乎失败了”不是一个技术术语。也不推荐使用
top_window()。它在调用时占据顶部窗口。在另一时刻,顶部窗口可能会发生变化,因此您必须再次致电.top_window()。如果顶部窗口更改的时刻是随机的,那么您的代码将随机运行! -
嗨!感谢您的建议,由于 pywinauto 无法找到所需的窗口,这是另一种解决方法。同样,我无法提供回溯,因为代码运行顺利,没有任何可见的错误。
标签: python qt automation pywinauto