PyAutoGUI 是一个功能强大的 Python 库,它允许用户通过编写脚本来控制鼠标和键盘,实现自动化操作。无论是自动化测试、数据录入还是演示自动化,PyAutoGUI 提供了一系列的工具和方法,使得自动化任务变得简单易行。本文将详细介绍 PyAutoGUI 的功能和使用方式,以及如何利用它来提高工作效率。
接下来我们开始实操!!
系统:Windows
Language:python
首先先安装pyautogui这个库,可以打开powershell输入:
pip install pyautogui
然后检查库是否安装好,可以输入一下代码进行试验:
import pyautogui
a = pyautogui.size()
print(a)
正常情况下会输出你的当前屏幕的分辨率:
Size(width=2560, height=1600)
如果并无报错那就可以开始正式了解了;
鼠标控制
moveTo()
我们想要控制鼠标到指定的位置,可以使用一个方法:
pyautogui.moveTo(x: , y: , duration: )
而这里的x, y 自然就是你的横坐标和纵坐标,duration则是你要它花多少时间移动到这里
比如:
pyautogui.moveTo(1442, 800, 10 )
就是移动到1442,800这个像素点位置,并且用时十秒钟
那如何知道自己要移动的位置在那个像素点呢?
我们可以用一个很简单的方法,那就是截图!!需要将整个屏幕都截图下来
然后使用windows自带的画图工具打开
接着我们将鼠标放在打开图片的任意位置,“画图”的左下角就会有像素坐标显示
我们就可以通过这个方法来知道像素点位于何处啦!
然后我们继续介绍有关鼠标操作的方法
moveRel()
这个就是相对鼠标当前位置的移动:
pyautogui.moveRel(xOffset: , yOffset: , duration:)
我们先用position获取一下鼠标当前的位置:
x, y = pyautogui.position()
print(x, y)
这样就可以获取到鼠标的当前位置了,比如当前位置是(1966, 47)
这个时候使用moveRel():
pyautogui.moveRel(100, 100, 5)
也就意味着,之前的位置(1966, 47)个加了一百,也就是相对之前移动了
经过计算,相当于对之前的像素位置进行了向右下141.42距离的移动
click()
接下来我们要实现模拟鼠标点击的行为:
我们可以先设置好自己的鼠标想移动的位置:
pyautogui.moveTo(1414, 1570, 2)
然后就开始用click()的方法点击:
pyautogui.click()
鼠标就会自动点击那个点,我们也可以通过给click()传参的方式实现:
pyautogui.click(1414, 1570, button='left', duration=0.5)
button是控制鼠标左键(left)还是右键(right)以及中间的滚轮(middle)进行点击
接下来我们用另一种当时模拟点击:
pyautogui.mouseDown(1700, 1557) # 按下鼠标
pyautogui.mouseUp(1686, 1494) # 释放鼠标
双击鼠标
然后来了解双击;
使用doubleClick()方法来实现:
pyautuogui.doubleClick(1400, 1557)
这样就可以完成鼠标的连续点击了,还有控制右键和中键:
# 分别双击鼠标右键和鼠标中键
pyautogui.rightClick(1686, 1494), pyautogui.middleClick(1686, 1494)
下一步来介绍鼠标的拖动。
鼠标拖动
dragTo()方法
pyautogui.dragTo(1640, 1557, duration=2)
这样就可以完成拖动功能了,除了dragTo()还有dragRel()和move一样,以此类推。
滚动
scroll()方法
pyautogui.scroll(800)
这个方法可以将模拟鼠标中键进行滚动,正数向上,负数向下
比如我在这个页面
运行
pyautogui.scroll(5000)
就可以直接回到页首
OK!!鼠标的模拟就完成了,接下来是键盘
键盘控制
首先是keyDown(),keyUp()方法,学过trule的人应该能反应过来
跟turtle的pen很相似
先实在来帮助大家理解,模拟一个ctrl+c复制
pyautogui.keyDown('ctrl')
pyautogui.keyDown("c")
pyautogui.keyUp("c")
pyautogui.keyUp('ctrl')
keyDown()是按下,那keyUp()就是拿起
当时如果都这样写的话就很麻烦,所以pyautogui又提供了一个不一样的方法
热键:
hotkey()
我们可以直接在里面输入两个键,然后同时执行:
pyautogui.hotkey('ctrl', 'c')
这样就可以直接完成热键的模拟了
那如果我想在页面上输入文字怎么办,那我们就要用到一个新方法了。
typewrite()
比如我们要使用pyautogui在浏览器里输入一些瑟瑟的网址(。◕‿◕。)
pyautogui.typewrite('http://*****.***/***/*/****', interval=0.1)
里面的第一个参数是message,也就是你要输入的内容
而interval,则是你输入每个字符的时间间隔,相当于每隔0.1秒就输入这个网址的一部分
press()
如果只是需要简单的完成普通的按键行为,以及一些特殊的按键比如enter,可以使用press()
简单且高效
pyautogui.press('enter', interval=0.1)
就可以实现啦,第一个是需要按下的按键,第二个是间隔的时间
OK!本章就到此结束了
任务
在此也就留下一个小任务,那就是:
用pyautogui库在浏览器了输入自己珍藏的瑟瑟网址并进入吧✧(≖ ◡ ≖✿)
使用了pyautogui都不需要手动输入了呢 ✧(≖ ◡ ≖✿)
----------
本章到此结束
希望能帮助到你!!(♡˙︶˙♡)