前段時間寫了做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也已經有大半年沒發新版了。。。
最后,我還是那個觀點,做界面自動化要根據實際情況,對於常年不變的界面有較大用處,如果界面經常變化就要靈活變通測試方式了。