4

pywinauto を使用して Windows アプリケーションを自動化しようとしています。メニューを選択して「ファイルを開くウィンドウ」を開くことができます。このウィンドウが表示されるのを待ってから、そのウィンドウにフォーカスを設定し、いくつかのボタンをクリックする必要があります。

何らかの理由で動作していません。

def open_file():
    return pywinauto.findwindows.find_windows(best_match=u'Open File', class_name='#32770')[0]
pywinauto.timings.WaitUntilPasses(20, 0.5,open_file)
print('wait for window')
open_file.SetFocus()

これを実行しようとすると、open_file に SetFocus オプションがないと表示されます。

私はpywinautoの初心者で、これは簡単に修正できると確信していますが、方法がわかりません:/

4

1 に答える 1

5

open_fileは関数です。そのような方法はありません。Applicationオブジェクトを使用してダイアログを待機する方がはるかに簡単です。

OpenDialog = pwa_app.window(best_match=u'Open', class_name='#32770').wait('visible', timeout=20, retry_interval=0.5)
OpenDialog.set_focus()

wait_until_passesのような低レベル関数は、既にクラスWindowSpecificationのwaitおよびwait_notメソッド内にカプセル化されています。 さらに単純なコードが機能するはずです。


pwa_app.OpenDialog.wait('visible', timeout=20)
pwa_app.OpenDialog.set_focus()
于 2015-02-04T10:39:33.567 に答える