【问题标题】:pywinauto is_visible throwing exception instead of returning true/false valuepywinauto is_visible 抛出异常而不是返回真/假值
【发布时间】:2017-04-06 20:14:18
【问题描述】:

对于下面的代码,我检查窗口是否存在以及它是否可见。情况是 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 与窗口标题的正则表达式一起使用时是否有问题?

【问题讨论】:

    标签: pywinauto


    【解决方案1】:

    好问题。可能有一个错误。默认搜索条件默认包含visible_only=True(但在异常消息中并未提及)。抱歉,不能保证快速修复它(有几个问题)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多