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测试自动化相关推荐
- python gui模板_Python GUI 编程(Tkinter) | 菜鸟教程
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- ml5238 源代码_无代码和基于ML的自动化与传统测试自动化
ml5238 源代码 毫无疑问,测试自动化领域正在发生转变. 机器学习(ML),深度学习和人工智能(AI)被越来越多地用作测试创作和测试分析的一部分. 尽管从成熟的角度来看,这个空间仍在增长,但对于从 ...
- 良好的实践不仅需要测试自动化,还需要测试自动化本身
测试方法的目标应该是交付价值.提高质量和改进测试过程.在某些情况下,流程本身需要测试. 持续测试 数字化转型和持续测试继续加速,因此,组织将不得不实施更智能的测试自动化方法. 为确保自动化测试兑现其承 ...
- python 控制库_python中实现自动化控制pyautogui库使用方法介绍
大家在使用电脑中,有时候需要电脑进行一些繁锁的程序化操作.Python中有一个第三方库,能够帮助大家实现自动化控制电脑完成指定任务.这个库叫pyautogui库.今天,咿哑呀就简单地教大家怎样使用这个 ...
- python自动化_Python 实现Excel自动化办公上
今天的文章分享Python 如何轻松操作Excel 这款office 办公软件的,在Python 中你要针对某个对象进行操作,是需要安装与其对应的第三方库的,这里对于Excel 也不例外,它也有对应的 ...
- python showinfo 方法_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下: Button:一个简单的按钮,用来执行一个命令或别的操作. Canvas:组织图形.这个部件可以用来绘制图表和图,创建图 ...
- python视窗编程_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下: Button:一个简单的按钮,用来执行一个命令或别的操作. Canvas:组织图形.这个部件可以用来绘制图表和图,创建图 ...
- python视窗版_Python GUI tkinter窗口视窗学习3
Python GUI tkinter窗口视窗学习3 # test9 import tkinter as tk window = tk.Tk() window.title('my test9') win ...
- python效率提升_Python GUI开发,效率提升10倍的方法!
1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...
最新文章
- 多所高校官宣硕士扩招!最大扩招增幅近60%
- 如何着手学习一个新的PHP框架
- oracle期末重点,oracle期末复习题及答案
- Ajax 网页异步调用
- SVD分解的并行实现
- pyqt5教程13:客户定制组件
- 如何在endnote列表中显示research note
- 右键删除选中的行总提示rowIndex
- 在穷学生面前 “ 摆弄骚姿 ”,最美90后支教女老师翻车~!这TM就是所谓的 “ 支教媛 ” ~?...
- java词汇速查手册_java 词汇表速查手册
- 一款显示游戏计算机占用软件,玩游戏占用电脑内存多怎么办
- 英伟达美女工程师:AI从业者要不要读博?要不要自己创业?
- 【智能家居篇】wifi网络结构(下)
- Visual Studio 2010 SP1将支持HTML5和CSS3
- centos6安装PHP5.4
- SpringCloud整合Hmily实现TCC分布式事务案例详解
- Pycharm安装教程 (2022最新版)
- 对透明表、簇表的理解
- 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
- 【mysql】查询中英文名称拼接处理
热门文章
- FutureTask isDone 返回 false
- 由excel导出引起的cpu 100% 和gc 的问题
- Activity嵌套fragment大全,activity加载单个fragment,TabLayout+ViewPager实现多个fragment滑动效果
- mpvue v-html 代替方法 使用 mpvue-wxparse
- oracle过滤器基础,示例过滤器表达式 (Oracle Solaris Studio 12.2:性能分析器)
- jsencrypt加密同一值返回不同密文_密码学原语如何应用?解析密文同态性的妙用...
- .f' '或者.F' '或者string.format(args)
- linux就业技术指导,学linux前景怎么样
- 靠谱的Pycharm安装详细教程
- Tornado 自定义session,与一致性哈希 ,基于redis 构建分布式 session框架