一、常见的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用;

PythonGUI自动化:UIAUTOMATION(一)相关推荐

  1. 【python】UI自动化-uiautomation

    UI自动化-uiautomation 0- 前言 1- inspect 2- uiautomation 3- [实战]RustDesk软件自动 安装.指定服务器信息 4- 参考文章 0- 前言 做应用 ...

  2. .Net软件UI界面测试自动化--UIAutomation技术

    在目前进行软件测试时,都或多或少的引入了自动化测试的概念,而且市面上也有好多软件自动化方面相关的工具,比如QTP,比如LoadRunner,但是这些工具要么售价不菲,要么对某些方面功能支持的不够全面, ...

  3. UIAutomation 自动化

    Introduction UI Automation是Microsoft .NET 3.0框架下提供的一种用于自动化测试的技术,是在MSAA基础上建立的,MSAA就是Microsoft Active ...

  4. python自动化:uiautomation、pyautogui操作会计记账系统(6):打印会计凭证

    python自动化:uiautomation.pyautogui操作会计记账系统(6):打印会计凭证 #coding=utf-8 #Beijia print account document打印会计凭 ...

  5. 张赐荣 | 浅谈 UIAutomation 自动化技术在读屏软件中的应用

    读屏软件工作原理 [文 / 张赐荣] Windows UIAutomation 是 Windows 操作系统中的软件自动化技术,能让开发人员通过编程方式访问和操作 Windows 系统中的用户界面元素 ...

  6. uiautomation(如何)实现自动化

    推荐python的一款神奇库--uiautomation 光看名字就应该能理解是UI+自动化 selenium是针对于浏览器,那么uiautomation就更厉害了,直接针对应用程序的UI元素. 话不 ...

  7. 自动化错误mysql vba,c - 运行时错误-214767259(80004005)自动化错误未指定错误 - Excel VBA - UIAutomation - 堆栈内存溢出...

    我对EXcel VBA有一些了解,我是UI Automation的新手. 我正在尝试使用Excel VBA在客户端环境中进行UI自动化. 我参考了UIAutomationCore.dll. 当我尝试单 ...

  8. python自动化:uiautomation、pyautogui操作会计记账系统(3):处理序时簿

    python自动化:uiautomation.pyautogui操作会计记账系统(1):处理序时簿 #coding=utf-8 #chronological book,查询序时簿 import xlr ...

  9. python自动化:uiautomation、pyautogui操作会计记账系统(5):财务公开

    python自动化:uiautomation.pyautogui操作会计记账系统(5):财务公开 #coding=utf-8 #Beijia To Excel accounting disclosur ...

最新文章

  1. 深入理解 Laravel Eloquent(三)——模型间关系(关联)
  2. 11 Python - dict
  3. 《Netty权威指南》
  4. android edittext 不滚动,EditText 设置可以垂直滑动但是不可输入
  5. python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码
  6. js 原生对象排序
  7. oracle 日期改字符格式_oracle 日期转换格式
  8. 基于Qt的简易聊天室设计
  9. 甘特图控件VARCHART XGantt:XGantt的用途
  10. 【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part3前端搭建与可视化
  11. SFDC Developer
  12. English trip EM2-PE 3B Teacher:Olivia
  13. 什么是ChainLink (LINK)
  14. 1.1 NBU基本概念
  15. 用win7系统如何登录ftp服务器,必备技巧之最详细win7系统登陆ftp服务器的图文教程...
  16. 安卓学习日记——在线支付
  17. 船说CMS模板 - 笔趣阁自适应模板
  18. 编程语言中的编码方式(笼统)
  19. python常用文本处理方法小结
  20. mysql强力推荐启用binlog

热门文章

  1. 软件开发常用英文缩写
  2. 蓝牙耳机台湾NCC认证怎么办理?
  3. 500kW储能变流器(PCS)采用T型三电平模块,结构三维、控制电路、
  4. 老年人腰疼的原因有哪些?4种方法治疗腰疼
  5. cdn之高速缓存服务器的搭建和配置
  6. openGauss数据库的使用
  7. 2012年敏捷个人俱乐部(北京)实践团开始报名了......
  8. 【疾病分类】模糊逻辑分类叶病严重程度分级系统【含GUI Matlab源码 194期】
  9. Vinted是什么平台?Vinted前景怎么样,做vinted要注意什么
  10. 请描写一段芭蕾女孩痛苦极限劈叉的故事