PyWinAuto GUI 测试
PyWinAuto GUI test
在我目前的工作中,我需要为基于第 3 方 Windows 的逻辑编程应用程序自动化测试。
1)我想开始申请,
2) 指定要处理的 window,
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 行)
计算器现在有点复杂(耶!)。 Windows 10 calc.exe
实现创建了另一个进程。我可以说更多:它的 UI 控件层次结构不适合一个进程的范围(真的):一个应用程序的进程很少。我们计划在启动应用程序时检测新的生成过程,但它还没有在 pywinauto 中。但是更深入 .children()
或 .descendants()
遵循跨进程边界的整个层次结构(唯一重要的事情:谁是父级)。
calc.exe
的当前示例看起来如此(请参阅 repo 中的最新 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()
在我目前的工作中,我需要为基于第 3 方 Windows 的逻辑编程应用程序自动化测试。 1)我想开始申请, 2) 指定要处理的 window, 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 行)
计算器现在有点复杂(耶!)。 Windows 10 calc.exe
实现创建了另一个进程。我可以说更多:它的 UI 控件层次结构不适合一个进程的范围(真的):一个应用程序的进程很少。我们计划在启动应用程序时检测新的生成过程,但它还没有在 pywinauto 中。但是更深入 .children()
或 .descendants()
遵循跨进程边界的整个层次结构(唯一重要的事情:谁是父级)。
calc.exe
的当前示例看起来如此(请参阅 repo 中的最新 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()