赞
踩
我试图在pywinauto中使用waituntilpasses来给应用程序时间打开一个新窗口.我已使用SWAPY识别窗口详细信息.
为了进行测试,我手动打开了子窗口,因此WaitUntilPasses应该立即看到该窗口,但是没有看到.
语法显示为OK,因为我可以找到并打印find_windows的输出,如下所示:
xx = pywinauto.findwindows.find_windows(
title=u'Choose template', class_name='#32770')[0]
print (xx)
这给出了789646的响应
但是在我的WaitUntilPasses命令中:
pywinauto.timings.WaitUntilPasses(
20, 0.5,
(pywinauto.findwindows.find_windows(
title=u'Choose template', class_name='#32770')[0]
)
)
它总是超时.我看不到语法问题,并且尝试了所有我能想到的排列.
任何提示将非常感谢.
解决方法:
pywinauto.timings.WaitUntilPasses等待第三个参数中的函数,但不等待函数执行的值(在您的情况下).
修复-将您的签入lambda函数转换为:
pywinauto.timings.WaitUntilPasses(20, 0.5, lambda: pywinauto.findwindows.find_windows(title=u'Choose template', class_name='#32770')[0])
但我赞成将检查放在单独的函数中:
def check():
return pywinauto.findwindows.find_windows(title=u'Choose template', class_name='#32770')[0]
pywinauto.timings.WaitUntilPasses(20, 0.5, check) #Important: 'check' without brackets
标签:pywinauto,python
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。