python gui 自动化_python GUI测试自动化
#! /usr/bin/env python
#coding=GB18030
'''
GUI測試自動化
語言:python
模塊:pywinauto
環境:windows7中文、python-2.6_32bit、pywinauto-0.40、SendKeys-0.3
FuncName: pywinauto_notepad.py
Desc: study pywinauto
Date: 2017-4-10 10:30
Author: 雷小莫_code
Home:http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-9487-pv1otSnSmsC29jQWT4wc-passport.csdn.net
'''
from pywinauto import application
import SendKeysCtypes
import time
class Pywin(object):
"""
pywin framwork main class
tool_name : 程序名稱,支持帶路徑
windows_name : 窗口名字
"""
SLEEP_TIME = 1
def __init__(self):
"""
初始化方法,初始化一個app
"""
self.app = application.Application()
def run(self, tool_name):
"""
啟動應用程序
"""
self.app.start_(tool_name)
time.sleep(1)
def connect(self, window_name):
"""
連接應用程序
app.connect_(path = r"c:\windows\system32\notepad.exe")
app.connect_(process = 2341)
app.connect_(handle = 0x010f0c)
"""
self.app.connect_(title = window_name)
time.sleep(1)
def close(self, window_name):
"""
關閉應用程序
"""
self.app[window_name].Close()
time.sleep(1)
def max_window(self, window_name):
"""
最大化窗口
"""
self.app[window_name].Maximize()
time.sleep(1)
def menu_click(self, window_name, menulist):
"""
菜單點擊
"""
self.app[window_name].MenuSelect(menulist)
time.sleep(1)
def input(self, window_name, controller, content):
"""
輸入內容
"""
self.app[window_name][controller].TypeKeys(content)
time.sleep(1)
def click(self, window_name, controller):
"""
鼠標左鍵點擊
example:
下面兩個功能相同,下面支持正則表達式
app[u'關于“記事本”'][u'確定'].Click()
app.window_(title_re = u'關于“記事本”').window_(title_re = u'確定').Click()
"""
self.app[window_name][controller].Click()
time.sleep(1)
def double_click(self, window_name, controller, x = 0,y = 0):
"""
鼠標左鍵點擊(雙擊)
"""
self.app[window_name][controller].DoubleClick(button = "left", pressed = "", coords = (x, y))
time.sleep(1)
def right_click(self, window_name, controller, order):
"""
鼠標右鍵點擊,下移進行菜單選擇
window_name : 窗口名
controller:區域名
order : 數字,第幾個命令
"""
self.app[window_name][controller].RightClick()
for down in range(order):
SendKeysCtypes.SendKeys('{DOWN}')
time.sleep(0.5)
SendKeysCtypes.SendKeys('{ENTER}')
time.sleep(1)
if __name__ == "__main__":
app = Pywin()
# 記事本例子
tool_name = "notepad.exe"
# 通過Spy++ 獲取window_name,即標題文本
window_name = u"無標題 - 記事本"
menulist = u"幫助->關于記事本"
# 通過Spy++ 獲取controller,即窗口類名
controller = "Edit"
content = u"編輯notepad"
#輸入文件名
FileName = u"臨時文本"
window_name_new = FileName + u"- 記事本"
# 啟動程序,記事本只能開一個
app.run(tool_name)
app.connect(window_name)
app.max_window(window_name)
app.menu_click(window_name,menulist)
app.click(u'關于記事本', u'確定')
app.input(window_name,controller,content)
# Ctrl + a 全選#ctrl = ^ ;atl = % ;
app.input(window_name,controller,"^a")
# 選擇復制
app.right_click(window_name,controller,3)#菜單移動到第三項 并單擊
#選擇粘貼
app.right_click(window_name,controller,4)
SendKeysCtypes.SendKeys('{ENTER}')#按下回車鍵
# Ctrl + v 粘貼
app.input(window_name,controller,"^v")
# Ctrl + s 保存
app.input(window_name,controller,"^s")
# 輸入文件名
app.input(u"另存為",controller,FileName)
# 保存
app.click(u"另存為","Button")
try:
app.click(u"確認另存為","Button")
except:
pass
finally:
app.close(window_name_new)
總結
以上是生活随笔為你收集整理的python gui 自动化_python GUI测试自动化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android strings.xml资
- 下一篇: python内存模型_内存篇3:CPyt