自动操作软件 获取软件按钮内容 UIAutomation 软件自动化测试(我的一点补充)

近期玩了下 UIAutomation。C# 中有 UI Automation 库,C++可以看msdn的 Accessibility。这两个东西网上能找到的东西太少了,只能自己看微软的官方文档。我把我的一些代码段贴到下面,希望能帮助需要的人。Python有个库 UIAutomation,就是封装微软提供的 UIAutomation,网上有一些 资料。但是这个库的作者说没有准备文档,所以需要的人自己看Demo去猜函数该怎么用吧。我用的时候结合了另一个库 pyautogui,用于操作键盘、鼠标。

Python 的 UI Automation 这个库怎么用可以直接看 uiautomation.py 这个文件,其中 class Control() 这个在5156行。在寻找控件的时候可先用命令行工具 automation.py -t3 去查找,具体参考 这个网页;关于找到元素的代码参考 这个。在遇到问题时可以参考 C# 的代码。比如从 EditControl 获取内容:

相应的 python 代码:

传统的Win32程序有句柄这个东西,每个控件的句柄很容易获取。WPF 程序的句柄就一个,是主窗口的,里边的控件是框架渲染的,所以 spy++ 无能为力了。UIAutomation是向 WPF 窗体发消息,如果窗口不处理这个消息,那也是获取不到控件的,比如QQ轻聊版。处理消息的是 LresultFromObject 函数。引用 大牛 的话:

和 spy++ 类似的有个 snoop,在 GitHub 上开源的,可以看 WPF 窗体的控件树。自动化测试的商业软件有 Ranorex,可以试用30天。他录制的过程生成了一个解决方案,这个解决方案可以直接在 VS 中打开进行更改。还有些 FlaUI,UISpy.exe,QAliber,White.NUnit IL ,Inspector,ildasm,ilspy 我就没尝试了。

来源:0XIX0

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月19日
下一篇 2019年8月19日

相关推荐