windows端的软件,有多个框架可供选择,例如autoit、uiautomator、uiautomation等等。感觉uiautomation看着更有好一些,就拿来试试。
uiautomation地址:
https://github.com/yinkaisheng/Python-UIAutomation-for-Windows
中文介绍地址:
https://github.com/yinkaisheng/Python-UIAutomation-for-Windows/blob/master/readme_cn.md
1.学会使用UIspy.exe软件
这个软件可以实时查看你需要操作元素的信息,例如:点击、输入等操作
下载地址:百度网盘
提取密码为:ktwj
具体如何使用,自己研究吧,总体比较简单!
2.打开某个程序
import subprocess
# 打开系统自带的某个程序
subprocess.Popen('notepad.exe')
# 打开其他程序
subprocess.Popen('D:\\TestSoftware\\XXXX.exe') # 可执行文件的具体地址信息
3.获取软件的主界面:
windows软件,一般都会有一个主界面,这个主界面一般都不会改变的,我们需要在主界面下对其他对话框或元素等的操作。
import uiautomation as auto
window = auto.WindowControl(ClassName="#32770", searchDepth=1) # 窗口捕获
4.获取弹框的提示信息
需求:获取弹框的提示内容(因为每次的弹框导出的内容不一样)
- 通过UIspy界面,找到对应的这个弹框的详细信息
- 发现弹框的提示信息,是Text类型的,所以只要获取这个元素的对象,就能找到Name属性的值了
text_element = window.TextControl(AutomationId='65535') #获取弹框元素,window是我们上一步获取的主界面对象
alert_info = text_element.Name
5.不同类型元素的操作
程序窗口:WindowControl()
按钮:ButtonControl()
文件显示:TextControl()
输入框:EditControl()
6.元素的属性
ClassName、Name、ProcessId、AutomationId
7.常用的操作
- DoubleClick() 双击
- Click() 点击;
- RighClik() 右键点击;
- SendKeys() 发送字符;
- SetValue() 传值,一般对EditControl用;