python自动化工具之pywinauto(一个实例)结合pyuserinput
以下是pywinauto使用指南。这个窗口句柄可以在Spy++中查看 (Microsoft Spy++(查看窗口句柄) 10.00.30319 官方最新绿色版)
二、pyuserinput使用方法
//导入模块 import pymouse,pykeyboard,os,sys
from pymouse import *
from pykeyboard import PyKeyboard
//分别定义一个实例
m = PyMouse()
k = PyKeyboard() 鼠标操作:
m.click(x,y,button,n) –鼠标点击
x,y –是坐标位置
buttong –1表示左键,2表示点击右键
n –点击次数,默认是1次,2表示双击 m.move(x,y) –鼠标移动到坐标(x,y) x_dim, y_dim = m.screen_size() –获得屏幕尺寸 键盘操作: k.type_string(‘Hello, World!’) –模拟键盘输入字符串
k.press_key(‘H’) –模拟键盘按H键
k.release_key(‘H’) –模拟键盘松开H键
k.tap_key(“H”) –模拟点击H键
k.tap_key(‘H’,n=2,interval=5) –模拟点击H键,2次,每次间隔5秒
k.tap_key(k.function_keys[5]) –点击功能键F5
k.tap_key(k.numpad_keys[5],3) –点击小键盘5,3次 联合按键模拟
例如同时按alt+tab键盘
k.press_key(k.alt_key) –按住alt键
k.tap_key(k.tab_key) –点击tab键
k.release_key(k.alt_key) –松开alt键
======
以下是记事本操作实例。
#! /usr/bin/env python '''
FuncName: johnny-pywinauto.py
Desc: study pywinauto
Date: 2016-10-10 14:30
Author: johnny
Home:http://blog.csdn.net/z_johnny
''' from pywinauto import application
from pykeyboard import PyKeyboard
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()
k = PyKeyboard()
for down in range(order):
k.press_key(k.down_key)
time.sleep(0.5)
k.press_key(k.enter_key)
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"johnny"
window_name_new = content + ".txt"
# 启动程序,记事本只能开一个
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 全选
app.input(window_name,controller,"^a")
# 选择复制
app.right_click(window_name,controller,3)
#选择粘贴
app.right_click(window_name,controller,4)
k=PyKeyboard()
k.press_key(k.enter_key)
# Ctrl + v 粘贴
app.input(window_name,controller,"^v")
# Ctrl + s 保存
app.input(window_name,controller,"^s")
# 输入文件名
app.input(u"另存为",controller,content)
# 保存
app.click(u"另存为","Button")
try:
app.click(u"确认另存为","Button")
except:
pass
finally:
app.close(window_name_new)
python自动化工具之pywinauto(一个实例)结合pyuserinput的更多相关文章
- python自动化工具
公司有些业务不断的重复复制和黏贴实在让人头疼,于是乎考虑使用python自动的生成文件,并且替换文件中的一些内容,把需要复制和黏贴的内容制作成 模版,以后的开发工作可以根据模版来自动生成文件,自己以后 ...
- 阿里最强 Python 自动化工具开源了!
1. 前言 大家好,我是安果! 最近,阿里内部开源了一个 iOS 端由 Python 编写的自动化工具,即:tidevice 它是一款跨平台的自动化开源工具,不依赖 Xcode 就可以启动 WebDr ...
- 微软最强 Python 自动化工具开源了!不用写一行代码!
1. 前言 最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python 它支持主流的浏览器,包含:Chrome.Firefox.Safari.Microsoft E ...
- 自动化工具之三:pywinauto
Python自动化工具:pywinauto 一.pywinauto的安装 (1)安装命令 pip install -U pywinauto/pip3 install -U pywinauto (2)验 ...
- 简单的抓取淘宝关键字信息、图片的Python爬虫|Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)
Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 淘宝改字段,Bugfix,查看https://github.com/hunterhug/taobaoscrapy.git 由于Gith ...
- Ansible运维自动化工具19个常用模块使用实例【转】
一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...
- Python 任务自动化工具:nox 的配置与 API
英文 | Configuration & API 出处 | nox 官方文档 译者 | 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehua ...
- 【webdriver自动化】Python数据驱动工具DDT
一.Python数据驱动工具ddt 1. 安装 ddt pip install ddt DDT是 “Data-Driven Tests”的缩写 资料:http://ddt.readthedocs.i ...
- Python 任务自动化工具 tox 教程
在我刚翻译完的 Python 打包系列文章中,作者提到了一个神奇的测试工具 tox,而且他本人就是 tox 的维护者之一.趁着话题的相关性,本文将对它做简单的介绍,说不定大家在开发项目时能够用得上. ...
随机推荐
- 别人的Linux私房菜(14)Linux账号管理和ACL权限设置
用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...
- python (创建虚拟环境)
Python python 介绍 Python是一门计算机编程语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的 ...
- 移动端各种滚动场景需求的插件better-scroll
移动端各种滚动场景需求的插件: 文档地址: better-scroll:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/#better- ...
- uni-app 顶部导航点击更换图标
更换顶部导航的iconfont.ttf图标,先在配置文件配置好按钮: pages.json文件 "buttons": [ { "text": "\ue ...
- centos firewall使用笔记
Centos7.x firewalld配置详解推荐文章文章地址:https://blog.csdn.net/jsonxiang/article/details/87873493 一.firewalld ...
- html table 保存到excel中
引用:HTML中的table导出为Excel文件 <!DOCTYPE html> <html lang="en"> <head> <met ...
- C#遍历SharePoint文档库下所有文档包括文档库中子文件夹下所有文档
/// <summary> /// 获取取子文件下所有文件 /// </summary> /// <param name="web"></ ...
- JAVA 8 主要新特性 ----------------(七)新时间日期 API ----- Duration “时间”间隔
Duration:用于计算两个“时间”间隔 简介: 用法: 1.Zero常量 实例: Duration duration = Duration.ZERO; System.out.println(&qu ...
- .Net异步实例讲解
说起异步,Thread,Task,async/await,IAsyncResult 必须掌握 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行:对于比较耗时的操作( ...
- vshost32-clr2.exe 已停止工作
软件中使用了DevComponents.DotNetBar2.dll MessageBoxEx.Show("ddd");运行到这句出现如上错误 解决:在项目属性里->调试: ...