对于下面的代码,我检查窗口是否存在以及是否可见。例如,Exists返回true(但窗口是隐藏的)。所以我把另一个检查is_visible。但is_visible抛出异常而不是返回true / false
dlg = app.window_(title_re = "Buy Order Entry.*")
if(dlg.Exists(1)):
#Code enters here but window is hidden
visible = app.window_(title_re = "Buy Order Entry.*").is_visible()
输出:
Traceback (most recent call last):
File "autoscript.py", line 924, in <module>
visible = app.window_(title_re = "Buy Order Entry.*").is_visible()
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 357, in __getattribute__
ctrls = self.__resolve_control(self.criteria)
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 239, in __resolve_control
raise e.original_exception
pywinauto.findwindows.ElementNotFoundError: {'process': 2164, 'title_re': 'Buy Order Entry.*', 'backend': u'win32'}
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 239, in __resolve_control
raise e.original_exception
pywinauto.findwindows.ElementNotFoundError: {'process': 2164, 'title_re': 'Buy Order Entry.*', 'backend': u'win32'}
我该如何解决这个问题?当与窗口标题的正则表达式一起使用时,is_visible是否有问题?
答案 0 :(得分:1)
好问题。可能有一个错误。默认搜索条件默认包含visible_only=True
(但在例外消息中未提及)。对不起,不能保证快速修复它(有几个问题)。
要解决此问题,我建议在try / except块中使用dlg.wait('visible', timeout=1)
。它应该工作正常。