使用 Python 实现鼠标键盘自动化
来源:互联网 发布:xp保存网络密码 编辑:程序博客网 时间:2024/06/06 14:22
http://mp.weixin.qq.com/s/dm8uXjHYJK1L6bNc8HmEXw
使用 Python 实现鼠标键盘自动化
本文演示了如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装:
使用 pyautogui 模块控制鼠标的移动
Python 通过屏幕的坐标系统对鼠标指针进行追踪与控制. 假设你的屏幕分辨率为 1920X1080, 那么屏幕的坐标系统看起来是这样的:
size(): 用于获取屏幕分辨率
将本文件保存为 .py 文件, 然后运行.
这段 Python 代码调用了 size()
函数, 以 (x, y) 的格式输出屏幕分辨率:
moveTo(): 用于鼠标的移动
这段代码调用了 moveTo()
函数, 其接受 x, y 坐标作为参数, 还有一个可选的持续时间参数. 该函数将鼠标指针从当前位置移动到 (x, y) 坐标指定的位置, 移动花费的时间由持续时间参数指定. 保存并运行该 Python 脚本, 你将看到, 鼠标指针像被施了魔法一样, 从当前位置花 1 秒钟时间移动到坐标位置 (100, 100).
moveRel(): 根据当前位置, 相对移动鼠标指针
这段代码将鼠标指针从原位置相对地移动 (0, 50) 个像素点 (译注: 即向下移动 50 像素). 比如说, 运行代码之前, 鼠标指针在 (1000, 1000), 那么代码运行之后, 鼠标指针将移动到 (1000, 1050), 耗时 1 秒.
position(): 获取当前鼠标指针的位置
输出: 程序执行时的鼠标所在的位置坐标.
click(): 用于控制鼠标点击和拖拽
这段代码将在 (100, 100) 的位置模拟鼠标点击.
有两个与鼠标拖拽操作相关的函数: dragTo
和 dragRel
. 它们的行为与 moveTo
和 moveRel
类似, 区别在于拖拽操作在移动的过程中, 会保持鼠标左键被按下.
该功能可用于不同的场景, 比如移动对话框, 或在 Windows 的画板程序中用铅笔工具自动绘图. 在画板程序中画一个正方形:
运行这段代码之前, 在后台打开 Windows 的画板程序, 并选择铅笔工具. 执行代码, 然后在 10 秒钟之内快速切换到 Windows 画板程序 (我们调用 sleep()
函数, 为绘图预留了 10 秒钟时间).
10 秒钟之后, 你将看到画板程序正在自动绘制一个正方形, 其左上角的顶点位于 (1000, 1000), 边长 100 个像素.
scroll(): 滚屏函数接受像素数作为参数, 并用给定的像素数向上滚屏
这段代码会对选中的窗口进行向上滚屏 200 个像素点.
typewrite(): 用于自动键入字符串, 只需将要键入的字符串传递给函数作为参数即可
假设文本区域位于屏幕 (100, 100) 的坐标位置, 那么这段代码将点击文本区域, 激活它, 并键入 "hello Geeks!"
传递键名: 可以向
typywrite()
函数传入分离的键名.
这段代码等价于: 键入 "a", 然后敲击左方向键, 再敲击左 ctrl 键.
热键组合:
hotkey()
可以模拟组合热键, 比如: ctrl-c, ctrl-a 等:
这段代码等价于: 按住左 ctrl 键的同时按下字母 a. 因此在窗口中, 这就实现了全选的功能.
- 使用 Python 实现鼠标键盘自动化
- 使用AutoHotKey来自动化键盘鼠标操作
- selenium+python自动化测试(四)--鼠标和键盘事件
- Python实现鼠标、键盘事件的记录
- python 监听键盘鼠标
- python键盘、鼠标控制
- Python鼠标键盘事件
- python监控键盘鼠标
- Python 键盘鼠标监听
- 7、Selenium + Python 实现 UI 自动化测试-键盘操作
- 6、Selenium + Python 实现 UI 自动化测试-鼠标操作
- Python-Selenium2做Web自动化测试(5)-对象事件的操作(鼠标操作、键盘操作)
- linux下python之模拟鼠标键盘动作具体实现
- 键盘实现鼠标功能
- Python中使用PyHook监听鼠标和键盘事件实例
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentation实现)
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentation实现)
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- 有声书-恶魔的奶爸节选
- Ubuntu 16.04 kinetic上移植安装嵌入式版本cartographer
- python 3 网络爬取图片之二
- C# 中计算第几周的几种方法
- 使用 Python 实现鼠标键盘自动化
- spring源代码解析收藏
- delphi Controls Components 属性
- python 递归比较两个dict或json(相等,包含)
- POI实现EXCEL单元格合并及边框样式
- Objective-c - block作为方法的参数
- webSocket获取httpSession
- vue1x、vue-router 0.7x 迁移到 vue2 vue-router2 vueX的坑
- JS阻止事件冒泡