我们公司现在产品是基于 WPF 框架完成的 Windows 客户端,因为大部分功能都是表单填写,工作重复度很高,我就想用 Python 来实现 UI 自动化。
但是用 pywinauto 打印控件列表一直报 “pywinauto.findwindows.ElementNotFoundError” 错误,Spy++ 也只能识别到客户端外层的窗口,识别不到里面的子控件。
用 pyautogui 又觉得图像识别有准确度问题。
所以想请教大家,有没有什么好的方法识别客户端里的控件来完成自动化,或者是因为自定义控件导致识别不了,有没有更精准的图片识别模块来配合 pyautogui 进行自动化?
还望各位不吝赐教 谢谢。
pywinauto 代码如下:
from pywinauto.application import Application
import win32gui
handle = win32gui.FindWindow(None,'医院感染信息管理系统7.0')
app = Application(backend='uia').connect(handle = handle)
wind = app.window(title_re="医院感染信息管理系统7.0")
wind.print_control_identifiers()
https://github.com/microsoft/WinAppDriver
microsoft 官方发布的驱动
autoit
airtest 呢
appium 目前也支持了 window、mac os 的客户端了,兼容性效果咋样,靠你自己去试了
收藏一下,我们公司主要产品也是 Win 客户端,有什么好的方案正好学习一下
WPF 的话,你可以试下 winium---是的,那个和 selenium 一个套路的自动化测试服务,配合 inspector.exe 食用更佳,你可以使用 python 编写或者 java,groovy。
客户端的话 Ranorex 有可能是最优解,或者试试 uibot 这类的东西
UFT 或是一个不错的选择。
建议用 Ranorex 试试看,自身拥有比较好的控件识别。另外使用 C# 实现。也比较简单。还可以录制。
不过 Ranorex 收费,并且遇到问题时,国内很难查到对应解决办法,需要到对应的社区才好。
好用必须得是 Ranorex Studio,没有之一
现在不流行用 QTP 了么
airtest 试试可行否
你好 我最后还是用的 pywinauto + pytest 来做的 UI 自动化,pywinauto 是用程序的 AutomationId+TitleName+ClassName 配合识别的,识别精准度还是可以,我们程序是 UIA 的,试了试 Appium+WinAppDriver,但识别效果不理想(可能是我用法问题),然后 pyautogui 和 airtest 的图像识别截图太繁琐而且精准度有待观察,你可以参考一下
好的,我参考试试。之前试了 airtest,在我这儿精准度还可以,但确实有点繁琐;Ranorex 倒是还不错,方便,可以直接录制,可惜要收费。
楼主你还,pywinauto 有没有比较好的参考文档推荐一下,在网上找了下,感觉都比较乱