我正在使用最新版本(迄今为止)的 pywinauto;还使用 PyInspect (uia) 来识别控件。
我正在自动化应用程序上的控件,该过程的一部分是检查触发窗口从菜单选择(如“编辑”->“设置”)中出现后弹出的窗口上的几个框。
问题是,pywinauto 似乎无法检测到新窗口。我看到成功打开;并可以在 PyInspect 中将窗口和元素视为应用程序的子(子?)窗口。
我尝试过等待方法,认为自动化发生得太快 - 但无济于事。就像是:
mysettings = app['app-name'].child_window(title_re="my target settings window", class_name="#32770").wait('exists', timeout=10)
这只会超时。如果我打印控件标识符,则永远不会包含“我的目标设置窗口”。
app['app-name'].print_control_identifiers()
我还尝试了在 top_window 上 set_focus ..但这也不起作用。我的结论是 pywinauto 无法检测到它的存在。对此有什么想法吗?
我能够解决 pywinauto 检测子窗口的问题以及紧随其后的问题:访问子窗口。
首先,我能够通过在应用程序定义中定义 backend='uia' 来让 pywinauto 检测新窗口,如下所示:
app = application.Application(backend='uia')
我以前刚刚有:
app = application.Application()
我的下一个问题是访问子窗口上的元素。正如我所预料的那样,我无法直接访问该窗口:
app['my app']['child window']['textbox'].set_edit_text("hello world")
相反,这段代码有效:
app['my app'].child_window(title='child window name').Edit1.set_edit_text("hello world")
虽然我已经解决了我的问题,但我注意到在定义 backend='uia' 后,该过程现在的执行速度比以前慢得多。如果任何偶然发现此问题的人在这方面有任何反馈(或优化我上面的努力),请贡献。
Thanks
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)