pywinauto简单操作写字板的例子

  前段时间写了做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 FilesWindows NTAccessorieswordpad.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也已经有大半年没发新版了。。。

  最后,我还是那个观点,做界面自动化要根据实际情况,对于常年不变的界面有较大用处,如果界面经常变化就要灵活变通测试方式了。

原文地址:https://www.cnblogs.com/idbeta/p/5708606.html