2017-04-05 241 views
1

对于下面的代码,我检查窗口是否存在以及是否可见。大小写是Exists返回true(但窗口隐藏)。所以我把另一个检查is_visible。但是is_visible是抛出异常而不是返回真/假pywinauto 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是否存在问题?

回答

1

好问题。可能有一个错误。默认搜索条件默认包含visible_only=True(虽然在异常消息中没有提及)。抱歉,无法承诺快速修复它(有几个问题)。

要解决这个问题,我建议在try/except块中使用dlg.wait('visible', timeout=1)。它应该工作正常。

+0

是的,目前使用该解决方法。谢谢。 –

相关问题