pywinauto 等待并专注

pywinauto Wait and focus

我正在尝试使用 pywinauto 使 windows 应用程序自动化。 我可以 select 菜单并打开 "open file window"。 我需要等待这个 window 出现,然后将焦点设置到那个 window 并单击一些按钮。

由于某种原因无法正常工作。

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 的初学者,我很确定这很容易修复,但我不知道如何修复:/

open_file 是一个函数。它没有这样的方法。使用 A​​pplication 对象来等待对话框要简单得多。

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等底层函数已经封装在wait[=33=中] class 方法 WindowSpecification.


更简单的代码应该可以工作:

pwa_app.OpenDialog.wait('visible', timeout=20)
pwa_app.OpenDialog.set_focus()