我正在尝试远程控制一个windows应用程序,它有时在启动时使用pywinauto显示警告窗口。在
下面的代码标识窗口,因为它没有菜单。在
我想阅读弹出的文本来查找短语“请联系您的系统管理员。”在弹出窗口中知道它是 没错。在
mywindows = pywinauto.findwindows.find_windows(title_re=".*MyProgramTitle")
# proof that two windows are found
print(len(mywindows))
for handle in mywindows:
print('\nhandle {}'.format(handle))
app = Application().connect(handle=handle)
navwin = app.window(handle=handle )
if not navwin.menu_items():
# no menu - I bet it's a pop up
print('{} is the window I\'m looking for'.format(handle))
navwin.print_control_identifiers()
上面的代码打印出所有windows信息,包括 “静态-”位置映射失败。请与系统管理员联系。“”
但我需要抓到打印出来的信息来进一步处理。在
作为一个骇人听闻的解决方案,我浏览了
print_control_identifiers()
并找到了这种方法来循环访问窗口的控件find_windows
是自动化的非常低级的入口点。使用WindowsSpecification对象,您可以等待打开所需的对话框/控件,或者只检查它是否存在(都有自定义的超时)。在请参阅Getting Started Guide中的详细说明。在
您可以使用},如果失败,这些方法会引发异常。在
exists()
或visible()
方法(返回布尔值),而不是wait('exists')
或{你的情况可能是这样的:
相关问题 更多 >
编程相关推荐