PythonGUI自动化:UIAUTOMATION(一)

一、常见的windows程序界面的框架

MFC:(Microsoft Foundation Classes, 微软基础类库)作用在Windows平台做GUI开发使用。

            MFC快速入门:https://www.jianshu.com/p/0324359b567c

WindowsForms: 是微软的.NET 开发框架的图形用户界面 的一部分。微软在.Net 3.0中发行了WPF作为WinForms的替代版,很多时候仍需要和WinForms互操作。

WPF:  (Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

Metro:   是微软在Windows Phone 7中正式引入的一种界面设计语言,Windows 8,Windows 8.1、Windows 10以及Office 15、Office 16中也采用了Metro设计

Qt:  是一个跨平台的C++图形用户界面应用程序框架。它也是目前流行的Linux桌面环境KDE的基础。Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持

      支持的平台

  •    Windows – XP、Vista、Win7、Win8、Win2008、Win10
  •    Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、       FreeBSD、BSD/OS、和其他很多X11平台
  •    Macintosh – Mac OS X
  •    Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

 Qt 优点:跨平台,(只要装了Qt),无论在win,linux,android,ios都可以运行。

二、使用开源框架UIAutomation

开源框架UIAutomation,支持MFC, Windows Form, WPF, Modern UI(Metro UI), Qt(Partly), Firefox(version<=56 or >=60), Chrome and Electron等。

作者:yinkaisheng   原文:http://www.cnblogs.com/Yinkaisheng/p/3444132.html

github地址:https://github.com/yinkaisheng/Python-UIAutomation-for-Windows

三、UIAutomation常用的方法

1、WindowContrl(searchDepth=None,ClassName=None,SubName=None)

       (1)  查找窗口中的程序,如果有中文则需用Unicode;

       (2)  可用window.Exists(maxSearchSeconds)来判断此窗口是否存在;

2、EditControl(searchFromControl=None)

       (1)  查找文本编辑框位置,找到后可用DoubleClick()来改变电脑的focus;

       (2)  edit.SetValue(“string”)  输入值;

3、Win32API.SendKeys(“string”)

        如果已在文本编辑框位置,则可用此方法来输入值,{Ctrl}为ctrl键,其他类似;{@ 8}格式可输入8个@,对于数字也可实现此功能,但对于字母不能;

4、MenuItemControl(searchFromControl=None,Name=None)

        查找菜单按钮;

5、ComboBoxControl(searchFromControl=None,AutomationI=None)

        查找下拉框,然后在此基础上用Select(“name”)方法来选择需要的选项;

6、BottonControl(searchFromControl=None,Name=None,SubName=None)

        查找按钮;

7、automation.FindControl

                 ( WindowControl对象,lambda c:(isinstance(c, automation.EditControl) or isinstance(c,                      automation.ComboBoxControl)) and c.Name == 'Enter your search term'  )

        按条件搜索handle

四、UIAutomation常用定位属性

一般定位的属性有:ClassName、Name、ProcessId、AutomationId

这些属性的获得考虑使用:InspectX64

    (在上面开源项目中) Python-UIAutomation-for-Windows/inspect/InspectX64.exe可以获取

下图1为获取Name的展示:

 五、UIAutomation常用句柄操作

  1. Click() 点击;
  2. DoubleClick 双击;
  3. RighClik() 右键点击;
  4. SendKeys() 发送字符;
  5. SetValue() 传值,一般对EditControl用;
  6. Select() 下拉项选择,对ComboBoxControl用;

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值