python自动化工具之pywinauto(二)python自动化工具之pywinauto二
pywinauto的使用各控件的操作
如何匹配控件
如何操作控件
pywinauto的使用——各控件的操作对于常见的窗口程序,需要点点填填的控件有输入框(Edit)、按钮(Button)、复选框(CheckBox)、单选框(RadioButton)、下拉列表(ComboBox).
关于各个控件的函数方法,可以查阅官网 Methods available to each different control type
下面结合程序讲一下各个控件的用法。

要进行文件格式转换,一般需要三步:
1. 选择源文件
2. 转换参数配置
3. 选择输出文件位置
在这里,就是现在文件名后面的编辑框中填入源文件的位置,然后勾选自动扩帧复选框,然后点击转换按钮,最后会弹出一个另存为的文件对话框来选择目标文件位置。
目的明确了,接下来就是如何干的问题了。分两步:
1. 找到控件
2. 操作控件
如何让程序找到控件呢?
如何匹配控件最简单的方法就是通过空间特征进行匹配。窗体也可以看成是一个大控件。匹配窗口的方法除了前面提到的window()方法,还可以通过中括号加窗口名。如:
dlg_spec = app.window(title=r'EXE/EXE 转 MP4') # 1
dlg_spec = app[r'EXE/EXE 转 MP4'] # 2
除了title,还可以使用class或者title+class或者相近的text和类来匹配控件。
另外一种方法就是我们知道了这个程序的层次结构,然后类似寻到DOM元素一样一层一层的匹配。
那么如何找到这个层次结构呢。pywinauto提供了print_control_identifiers()函数来显示该窗体下所有控件的结构。
dlg_spec = app[r'EXE/EXE 转 MP4']
dlg_spec.print_control_identifiers()
输出如下:
Control Identifiers:
TEXE2FLVForm - 'EXE/EXE 转 MP4' (L202, T55, R496, B562)
['EXE/EXE 转 MP4TEXE2FLVForm', 'TEXE2FLVForm', 'EXE/EXE 转 MP4']
child_window(title="EXE/EXE 转 MP4", class_name="TEXE2FLVForm")
|
| TTrackBar - '' (L273, T189, R470, B204)
| ['TTrackBar', '下载安装相关视频编码器TTrackBar']
| child_window(class_name="TTrackBar")
|
| TGroupBox - '图像缩小输出时处理方法' (L212, T460, R483, B522)
| ['图像缩小输出时处理方法', 'TGroupBox', '图像缩小输出时处理方法TGroupBox', 'TGroupBox0', 'TGroupBox1']
| child_window(title="图像缩小输出时处理方法", class_name="TGroupBox")
| |
| | RadioButton - '部分画面鼠标自动跟随(动态显示光标附近图像)' (L232, T501, R470, B515)
| | ['RadioButton', '部分画面鼠标自动跟随(动态显示光标附近图像)RadioButton', 'RadioButton1', '部分画面鼠标自动跟随(动态显示光标附近图像)', 'RadioButton0']
| | child_window(title="部分画面鼠标自动跟随(动态