如何使用python实现模拟鼠标点击


Posted in Python onJanuary 06, 2020

这篇文章主要介绍了如何使用python实现模拟鼠标点击,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

不知道大家在工作中有没有一些工作需要重复的点击鼠标,因为会影响到财务统计报表的关系,我们每个月底月初都要修改ERP中的单据日期,单据多的时候光修改就能让你点鼠标点到手麻。(这里要吐槽一下浪沙软件,别的单据都可以批量修改日期,就是这个移仓单不行,你们研发怎么就这么懒?剩下这么点工作就不完成他?)之前同事有跟我提到过键盘精灵,因为当时负责别的工作,一直没有去了解。现在公司人员减少了,这工作又回到我身上了,刚好之前我在学习连连看的时候,知道Python 也能实现模拟鼠标点击,那就直接用上呗。

先来了解一下pyautogui。

pyautogui.moveTo,移动鼠标;pyautogui.click,点击鼠标,通过button来控制左击还是右击,click=n设置点击的次数,interval控制点击用的时间,有些程序确认双击是有个时间间隔的,如果不加上这个间隔,还真没办法识别。(好吧,这里说的就是你,浪沙。至少第一个单你是识别不了。害我没少测试。)就这两个功能对于我的这次操作已经是够用了。

当然Pyautogui的作用肯定不止这些,pyautogui.typewrite还能输入键盘有的字母的数字符号,screenshot截屏(这个在实现连连看的时候也能用得上哦。)等等,有兴趣的可以度娘学习一下。我们知道怎么模拟控制鼠标了,总得告诉它,要走到哪里,点击哪里吧。

Pyautogui是用像素来告诉程序要操作的位置的。那我们怎么得到这个像素呢?这里,我用的是操作系统自带的画图程序。画图里面“选择”这个功能会显示我们所选择的区域的像素,我们只要从我们需要点击的位置一直选到最左上角就可以了。

好了,到这里万事俱备,上个代码吧。

import pyautogui
for i in range(2, 11):
	用0.5 秒的时间把光标移动到(400, 175 + i * 20) 位置
pyautogui.moveTo(400, 175 + i * 20,
	duration = 0.5)
pyautogui.click(clicks = 2, button =
	'left', interval = 0.05)# 点击进入单据
time.sleep(3)
pyautogui.click(100, 140)# 点击修改
time.sleep(3)
pyautogui.click(350, 190, button =
	'left')# 左击发货日
pyautogui.click(350, 190, button =
	'right')# 右击发货日
time.sleep(1.5)
pyautogui.click(595, 397)# 选择日期5
time.sleep(1.5)
pyautogui.click(815, 472)# 完成
time.sleep(1.5)
pyautogui.click(565, 425)# 发出日大于接收日, 是
time.sleep(1.5)
pyautogui.click(155, 140)# 点击保存
time.sleep(2)
pyautogui.click(432, 140)# 点击查询
time.sleep(5)

我这里一个for 循环是让他从第一张单开始操作,操作到这一页的最后一张单。Time.sleep嘛,这个系统运行是需要时间的,我们让鼠标休息一下。

最后还有一个要可能需要提醒大家的地方就是,如果程序走到一半,发现没必要再执行下去了,或者有错误了(比如系统卡死了设置的休息时间不够),希望停止程序,这时候CTRL+C是不行的。

你需要把你的鼠标放到屏幕的最左上角。一般几秒后点击就会停止下来,(python shell会报错,这个不用管的)至于效果嘛,这里就不录动图了,毕竟是会泄漏个人和公司信息。肯定是亲测有效,以我半个小时的休息时间做担保。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python strip lstrip rstrip使用方法
Sep 06 Python
python中的内置函数getattr()介绍及示例
Jul 20 Python
python基于queue和threading实现多线程下载实例
Oct 08 Python
在Django中进行用户注册和邮箱验证的方法
May 09 Python
matplotlib设置legend图例代码示例
Dec 19 Python
python抓取文件夹的所有文件
Feb 27 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python中树与树的表示知识点总结
Sep 14 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 Python
pytorch 实现查看网络中的参数
Jan 06 #Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 #Python
Pytorch根据layers的name冻结训练方式
Jan 06 #Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 #Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
Jan 06 #Python
详解python tkinter模块安装过程
Jan 06 #Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 #Python
You might like
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
编译问题
2006/10/09 PHP
PHP 选项及相关信息函数库
2006/12/04 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
python开发一款翻译工具
2020/10/10 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
英语导游欢迎词
2015/09/30 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书