#! /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测试自动化相关推荐

  1. python gui模板_Python GUI 编程(Tkinter) | 菜鸟教程

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  2. ml5238 源代码_无代码和基于ML的自动化与传统测试自动化

    ml5238 源代码 毫无疑问,测试自动化领域正在发生转变. 机器学习(ML),深度学习和人工智能(AI)被越来越多地用作测试创作和测试分析的一部分. 尽管从成熟的角度来看,这个空间仍在增长,但对于从 ...

  3. 良好的实践不仅需要测试自动化,还需要测试自动化本身

    测试方法的目标应该是交付价值.提高质量和改进测试过程.在某些情况下,流程本身需要测试. 持续测试 数字化转型和持续测试继续加速,因此,组织将不得不实施更智能的测试自动化方法. 为确保自动化测试兑现其承 ...

  4. python 控制库_python中实现自动化控制pyautogui库使用方法介绍

    大家在使用电脑中,有时候需要电脑进行一些繁锁的程序化操作.Python中有一个第三方库,能够帮助大家实现自动化控制电脑完成指定任务.这个库叫pyautogui库.今天,咿哑呀就简单地教大家怎样使用这个 ...

  5. python自动化_Python 实现Excel自动化办公上

    今天的文章分享Python 如何轻松操作Excel 这款office 办公软件的,在Python 中你要针对某个对象进行操作,是需要安装与其对应的第三方库的,这里对于Excel 也不例外,它也有对应的 ...

  6. python showinfo 方法_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)

    Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下: Button:一个简单的按钮,用来执行一个命令或别的操作. Canvas:组织图形.这个部件可以用来绘制图表和图,创建图 ...

  7. python视窗编程_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)

    Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下: Button:一个简单的按钮,用来执行一个命令或别的操作. Canvas:组织图形.这个部件可以用来绘制图表和图,创建图 ...

  8. python视窗版_Python GUI tkinter窗口视窗学习3

    Python GUI tkinter窗口视窗学习3 # test9 import tkinter as tk window = tk.Tk() window.title('my test9') win ...

  9. python效率提升_Python GUI开发,效率提升10倍的方法!

    1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...

最新文章

  1. 多所高校官宣硕士扩招!最大扩招增幅近60%
  2. 如何着手学习一个新的PHP框架
  3. oracle期末重点,oracle期末复习题及答案
  4. Ajax 网页异步调用
  5. SVD分解的并行实现
  6. pyqt5教程13:客户定制组件
  7. 如何在endnote列表中显示research note
  8. 右键删除选中的行总提示rowIndex
  9. 在穷学生面前 “ 摆弄骚姿 ”,最美90后支教女老师翻车~!这TM就是所谓的 “ 支教媛 ” ~?...
  10. java词汇速查手册_java 词汇表速查手册
  11. 一款显示游戏计算机占用软件,玩游戏占用电脑内存多怎么办
  12. 英伟达美女工程师:AI从业者要不要读博?要不要自己创业?
  13. 【智能家居篇】wifi网络结构(下)
  14. Visual Studio 2010 SP1将支持HTML5和CSS3
  15. centos6安装PHP5.4
  16. SpringCloud整合Hmily实现TCC分布式事务案例详解
  17. Pycharm安装教程 (2022最新版)
  18. 对透明表、簇表的理解
  19. 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
  20. 【mysql】查询中英文名称拼接处理

热门文章

  1. FutureTask isDone 返回 false
  2. 由excel导出引起的cpu 100% 和gc 的问题
  3. Activity嵌套fragment大全,activity加载单个fragment,TabLayout+ViewPager实现多个fragment滑动效果
  4. mpvue v-html 代替方法 使用 mpvue-wxparse
  5. oracle过滤器基础,示例过滤器表达式 (Oracle Solaris Studio 12.2:性能分析器)
  6. jsencrypt加密同一值返回不同密文_密码学原语如何应用?解析密文同态性的妙用...
  7. .f' '或者.F' '或者string.format(args)
  8. linux就业技术指导,学linux前景怎么样
  9. 靠谱的Pycharm安装详细教程
  10. Tornado 自定义session,与一致性哈希 ,基于redis 构建分布式 session框架