PyWinAuto GUI测试

时间:2018-08-25 20:11:27

标签: automation pywinauto winapp

在我目前的工作中,我需要为基于Windows的第三方逻辑编程应用程序自动化测试。 1)我想启动一个应用程序, 2)指定要处理的窗口, 3)查找所有控件和属性 4)最后从控件中获得输出值 有人可以帮忙吗?谢谢!

这是我的代码:

#import the pywinauto.application module
from pywinauto.application import Application 
# create an applicaiton instance and execute the application
app = Application(backend="uia").start('calc.exe')  
# creating window specification
dlg_spec = app.window(title='Calculator')
# window lookup to deal with the window/control
dlg_spec.wrapper_object().minimize()
dlg_spec.minimize()
# Printing the control identifiers
app.Properties.print_control_identifiers()

我收到TimeoutError和ElementNotFoundError(第4行)

1 个答案:

答案 0 :(得分:0)

计算器目前有点复杂(是的!)。 Windows 10 calc.exe的实现会创建另一个进程。我可以说更多:它的UI控件层次结构不适合一个进程的范围(真的):一个应用程序的进程很少。我们计划启动应用程序时检测新的生成过程,但是pywinauto中还没有。但是深入.children().descendants()可以跨整个过程界限(唯一重要的是:谁是父母)遵循整个层次结构。

calc.exe的当前示例如下所示(请参见回购中的最新win10_calculator.py):

from pywinauto import Desktop, Application

app = Application(backend="uia").start('calc.exe')

dlg = Desktop(backend="uia").Calculator # window specification
dlg.type_keys('2*3=')
dlg.print_control_identifiers() # this is also window spec method

dlg.minimize()
# minimized window needs some tricks to find it and restore
Desktop(backend="uia").window(title='Calculator', visible_only=False).restore()