pywinauto is_visible 抛出异常而不是返回 true/false 值
pywinauto is_visible throwing exception instead of returning true/false value
对于下面的代码,我检查 window 是否存在以及它是否可见。案例是 Exists returns 为真(但是 window 是隐藏的)。所以我又放了一张支票 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 与 window 标题的正则表达式一起使用时是否有问题?
好问题。可能有一个错误。默认搜索条件默认包含 visible_only=True
(但在异常消息中未提及)。抱歉,不能承诺快速修复它(有几个问题)。
为了解决这个问题,我建议在 try/except 块中使用 dlg.wait('visible', timeout=1)
。它应该可以正常工作。
对于下面的代码,我检查 window 是否存在以及它是否可见。案例是 Exists returns 为真(但是 window 是隐藏的)。所以我又放了一张支票 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 与 window 标题的正则表达式一起使用时是否有问题?
好问题。可能有一个错误。默认搜索条件默认包含 visible_only=True
(但在异常消息中未提及)。抱歉,不能承诺快速修复它(有几个问题)。
为了解决这个问题,我建议在 try/except 块中使用 dlg.wait('visible', timeout=1)
。它应该可以正常工作。