前段時間寫了做web程序界面自動化的簡單例子,今天寫一下windows gui程序界面自動化測例子吧。
ps.咱中國人YinKaisheng封裝的UIAutomation庫也很好用,https://github.com/yinkaisheng/Python-UIAutomation-for-Windows
def openwordpad():
app = application.Application()
wordpad=app.start(r"C:\Program Files\Windows NT\Accessories\wordpad.exe")
wordpad.wordpadclass.RICHEDIT50W.TypeKeys("hello world it is good to see you here!".replace(' ','{SPACE}' ))
time.sleep(1)
#右鍵-復制一段文字-粘貼
wordpad.wordpadclass.RICHEDIT50W.TypeKeys('^a')
time.sleep(1)
wordpad.wordpadclass.RICHEDIT50W.RightClickInput(coords=(500, 100))
time.sleep(1)
wordpad.wordpadclass.RICHEDIT50W.ClickInput(coords=(550, 150))
#復制粘貼多次
for i in range(2):
wordpad.wordpadclass.RICHEDIT50W.RightClickInput(coords=(500, 300))
time.sleep(1)
wordpad.wordpadclass.RICHEDIT50W.ClickInput(coords=(550, 370))
#找到保存菜單 按alt鍵
#還是用快捷鍵保存吧。。。
wordpad.wordpadclass.RICHEDIT50W.TypeKeys('^s')
save_dlg= app.window_(title_re = u"保存為", class_name = "#32770")
save_dlg.edit.TypeKeys(u"c:\\testwordpad")
wordpad[u'保存為'][u'保存(S)'].SetFocus()
wordpad[u'保存為'][u'保存(S)'].Click()
wordpad.wordpadclass.TypeKeys('%{F4}')
pywinauto用法還是比較簡單的,網上也有不少介紹了。不過pywinauto對右鍵菜單識別並不好,所以不得已只能靠操作移動光標到指定坐標的方法來點擊右鍵,這樣兼容性就很差了。在官方的todolist中有這么一項
Make it easy to work with context(right click) menu
不過pywinauto也已經有大半年沒發新版了。。。
最后,我還是那個觀點,做界面自動化要根據實際情況,對於常年不變的界面有較大用處,如果界面經常變化就要靈活變通測試方式了。
