如何在我的应用程序中使用pywinauto进行应用程序/对象同步? 我们将UFT移动到python + pywinauto。在UFT中,当我们的测试应用程序过于繁忙而无法响应操作或者没有立即响应UI操作(例如由于某些内部处理而点击按钮)时,存在随机实例。我们已将syncronization timeout默认值设置为60秒,UFT用于等待应用程序自动响应然后执行操作。 我如何在pywinauto中处理这种情况?
答案 0 :(得分:1)
pywinauto中的默认超时为5秒。它可以在全球范围内更改(不推荐!):
from pywinauto.timings import Timings
Timings.window_find_timeout = 60
或者您可以在指定控件出现或消失时进行显式等待。它在文档中有更详细的描述:Waiting for Long Operations。
示例:
app.MainWindow.menu_select('File->Open')
app.OpenDialog.wait('ready', timeout=10)
app.OpenDialog.Edit.set_text('file name')
app.OpenDialog.Open.click()
app.OpenDialog.wait_not('visible', timeout=30)
app.ChangedMainWindowTitle.wait('ready', timeout=60)
[编辑]一个更强大的方法:
# wait until CPU usage is lower than 2.5%
app.wait_cpu_usage_lower(threshold=2.5)
它会等到这个特定进程的CPU使用率下降(它不是系统范围的CPU负载)。有关此方法的更详细参数,请参阅文档。