Windows平台自动化工具pywinauto

因为女朋友学习的时候遇到需要对一个软件进行多次重复的情况,向我求助,我就想到了利用自动化工具来完成相关操作。一开始想使用appium中带的windows driver,但是看了一下文档觉得有些复杂,随后选择了使用pywinauto。

安装

github地址

pip install pywinauto

使用

选择驱动

选择对应的驱动,这里我选择的UIA模式

Win32 API (backend=“win32”) - 现在的默认backend

MFC, VB6, VCL, 简单的WinForms控件和大多数旧的遗留应用程序

MS UI Automation (backend=“uia”)

WinForms, WPF, Store apps, Qt5, 浏览器
注意: Chrome在启动之前需要–force-renderer-accessibility cmd标志。 由于comtypes Python库限制,不支持自定义属性和控件。

本来我并不确定要选择什么驱动,所以我使用了inspect.exe,在uia模式下可以检索出更多的控件属性,所以我使用uia模式。还有更多的检查工具可以帮助我们选择适合的驱动。

启动应用

启动应用使用start(“app_path”)函数

from pywinauto.application import Application
app = Application(backend="uia").start('G:\\CurveFitting\\CurveFitting.exe')

绑定窗口

使用window()函数

win_page = app.window(title='水文频率分布曲线适线软件(教学版)')

其中的title可以由inspect软件在uia模式下选择软件窗口,在value.value下查看。

定位元素

定位元素前可通过print_control_identifiers()查看软件DOM树

win_page.print_control_identifiers()

从返回结果中查找定位元素的属性值,方便进行定位。定位时使用窗口["属性值"]即可定位。

    # 点击获取数据
    win_page['Button11'].click()

元素操作

可通过定位.操作的方式进行元素操作。

        # 输入设计值
        win_page['Edit6'].type_keys(input_value)
        # 点击立即查询
        win_page['立即查询'].click()
        # 获取设计频率
        output_value = win_page['Edit7'].legacy_properties()['Value']

通过上述操作即可实现软件的自动化操作,亦可为测试自动化所用。
本文使用的代码的github地址

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值