2017-04-05 14 views
1

以下のコードでは、ウィンドウが存在するかどうかと、表示されているかどうかをチェックします。 Existsがtrueを返す場合(ただし、ウィンドウは非表示)だから私は別のチェック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() 

出力偽/例外を投げる代わりにtrueを返し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

はい、現在その回避策を使用しています。ありがとう。 –

関連する問題