python自動化工具之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="部分畫面鼠標自動跟隨(動態顯示光標附近圖像)", class_name="TRadioButton"