如何使用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中使用swapCase()方法转换大小写的教程
May 20 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
python距离测量的方法
Mar 06 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
Python socket 套接字实现通信详解
Aug 27 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
python统计字符的个数代码实例
Feb 07 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
requests在python中发送请求的实例讲解
Feb 17 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
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
php的一个简单加密解密代码
2014/01/14 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
python在windows下实现备份程序实例
2014/07/04 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
医药个人求职信范文
2014/01/29 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
好媳妇事迹材料
2014/12/24 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
实施意见格式范本
2015/06/05 职场文书
装修安全责任协议书
2016/03/22 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸