本文简单介绍如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 所以执行如下命令进行安装python
# pyautogui模块依赖p_w_picpath模块,没有p_w_picpath会报ImportError: No module named 'PIL'错误 pip install p_w_picpath pip install pyautogui
官方文档介绍:https://pyautogui.readthedocs.io/en/latest/ ide
使用 pyautogui 模块控制鼠标的移动函数
size(): 用于获取屏幕分辨率工具
import pyautogui print(pyautogui.size())
moveTo(): 用于鼠标的移动ui
pyautogui.moveTo(100,100,duration=1)
这段代码调用了 moveTo() 函数, 其接受 x, y 坐标做为参数, 还有一个可选的持续时间参数. 该函数将鼠标指针从当前位置移动到 (x, y) 坐标指定的位置, 移动花费的时间由持续时间参数指定. 保存并运行该 Python 脚本, 你将看到, 鼠标指针像被施了魔法同样, 从当前位置花 1 秒钟时间移动到坐标位置 (100, 100).指针
moveRel(): 根据当前位置, 相对移动鼠标指针ip
pyautogui.moveRel(0,300,duration=1)
这段代码将鼠标指针从原位置相对地移动 (0, 300) 个像素点 (译注: 即向下移动 300 像素). 好比说, 运行代码以前, 鼠标指针在 (1000, 300), 那么代码运行以后, 鼠标指针将移动到 (1000, 600), 耗时 1 秒.文档
position(): 获取当前鼠标指针的位置字符串
print(pyautogui.position())
输出: 程序执行时的鼠标所在的位置坐标.get
click(): 用于控制鼠标点击和拖拽
pyautogui.click(370,120)
在(370,120)的位置模拟鼠标点击,其中click还有一个参数动做button,默认为'lest',当button='right'时,可rightClick()效果同样(鼠标右键点击)
doubleClick() 双击
rightClick() 右击
有两个与鼠标拖拽操做相关的函数: dragTo 和 dragRel. 它们的行为与 moveTo 和 moveRel 相似, 区别在于拖拽操做在移动的过程当中, 会保持鼠标左键被按下.
该功能可用于不一样的场景, 好比移动对话框,或在 Windows 的画板程序中用铅笔工具自动绘图
import pyautogui import time time.sleep(5) # 5秒种时间切换到画板程序 pyautogui.moveTo(200,200,duration=1) # 鼠标移动到(200,200)的位置 pyautogui.dragRel(100,0,duration=1) pyautogui.dragRel(0,100,duration=1) pyautogui.dragRel(-100,0,duration=1) pyautogui.dragRel(0,-100,duration=1)
scroll(): 滚屏函数接受像素数做为参数, 并用给定的像素数向上滚屏
pyautogui.scroll(200)
对选中的窗口进行向上滚屏200个像素点.当值为负数时,向下移动
typewrite(): 用于自动键入字符串, 只需将要键入的字符串传递给函数做为参数便可
pyautogui.click(100,200) pyautogui.typewrite('hello word!')
假设文本区域位于屏幕 (100, 200) 的坐标位置, 那么这段代码将点击文本区域, 激活它, 并键入'hello word!'
传递键名: 能够向 typywrite() 函数传入分离的键名.
pyautogui.typewrite(['a','left','ctrlleft'])
这段代码等价于: 键入 "a", 而后敲击左方向键, 再敲击左 ctrl 键.
热键组合: hotkey() 能够模拟组合热键, 好比: ctrl-c, ctrl-a, ctrl-v 等
pyautogui.hotkey('ctrlleft','v')
模拟ctrl-v,复制功能
pyautogui.hotkey('ctrl', 'shift', 'esc') 等价于 pyautogui.keyDown('ctrl') pyautogui.keyDown('shift') pyautogui.keyDown('esc') pyautogui.keyUp('esc') pyautogui.keyUp('shift') pyautogui.keyUp('ctrl')
press() :键盘功能按键
pyautogui.press('enter') # press the Enter key pyautogui.press('f1') # press the F1 key pyautogui.press('left') # press the left arrow key
消息弹窗函数
若是你须要消息弹窗,经过单击OK暂停程序,或者向用户显示一些信息,消息弹窗函数就会有相似JavaScript的功能:
pyautogui.alert('这个消息弹窗是文字+OK按钮') # 返回OK pyautogui.confirm('这个消息弹窗是文字+OK+Cancel按钮') # 返回OK 或 Cancel pyautogui.prompt('这个消息弹窗是让用户输入字符串,单击OK') # 返回输入的字符串