python之pyautogui安装使用
我就是一个小怪兽 人气:7前言
以下是我对python中编写脚本最重要的库之一pyautogui的学习整理,分享给大家希望有所帮助
提示:我在初步使用pyautogui的过程中发现对于谷歌浏览器的click点击失效,其他尚未发现
pyautogui的安装
可以使用cmd输入pip install pyautogui进行库的安装
鼠标
对鼠标的控制是基于屏幕上的位置的,比如我的电脑的显示分辨率是1920✖1080,也就是从屏幕的左上角开始,水平方向向右代表x,一行中有1920个小像素块,垂直方向向下代表y,一列中有1080个像素块,就像一个大坐标系,只不过整个屏幕中只有第一象限
使用size获取屏幕的显示分辨率
示例如下:
from pyautogui import size x,y=size() print(x,y)
使用position获取鼠标当前位置
from pyautogui import position x,y=position() print(x,y)
鼠标移动
moveTo:把鼠标移动到屏幕的某个位置
上面可知左上角的坐标是(0,0),右下角就是(1920,1080),示例如下
from pyautogui import moveTo moveTo(1684,1059,duration=3)#1684和1059是要移动到的位置,duration表示执行该移动的时间,单位是秒
moveRel(move):基于当前位置进行移动
from pyautogui import moveTo,moveRel moveRel(100,200,duration=2) #从当前鼠标所在的位置移动到向右100,向下200的位置,过程时间设定为2秒
鼠标点击
click:单击鼠标
from pyautogui import click #click中指定了坐标,也是可以设置从执行到点击这个位置的duration时间,以及左边,中间还是右键 click(100,200,button='left',duration=2) click(100,200,button='middle') click(100,200,button='right')
doubleClick:双击鼠标
from pyautogui import doubleClick #参数与单击相同,只不过现在是双击鼠标 doubleClick(100,200,button='left',duration=2) doubleClick(100,200,button='middle') doubleClick(100,200,button='right')
mouseDown和mouseUp:鼠标的按下与释放
from pyautogui import mouseDown,mouseUp mouseDown() # 鼠标按下 mouseUp() # 鼠标释放
鼠标拖动
dragTo:拖动鼠标到某位置
dragRel:根据当前位置对数表进行拖动
鼠标拖动与鼠标移动类似,但相比较,做了一个移动窗口的区别测试
from pyautogui import moveTo,mouseDown,mouseUp mouseDown(button='left') moveTo(1000,500) mouseUp(button='left')
from pyautogui import dragTo,mouseDown,mouseUp mouseDown(button='left') dragTo(1000,500) mouseUp(button='left')
在测试的时候发现,moveTo和鼠标按下相结合可以实现对某窗口的拖动,但是dragTo不可以
鼠标滚动
from pyautogui import scroll scroll(300)#传入一个整数,正数表示向上滑动滚轮 scroll(-300)#向下滑动滚轮
屏幕处理
screenshot:截取全屏
截图将保存在脚本保存的同一目录下
from pyautogui import screenshot screenshot().save('屏幕截图.png')#jpg格式也支持,其他格式请尝试
crop截取任意大小的截图 ,比如crop((
locateOnScreen:查找截图位置
这里查找截图位置是在屏幕上查找,找到和保存的截图符合的位置
from pyautogui import locateOnScreen print(locateOnScreen('屏幕截图.png'))
键盘输入
keyDown和keyUp:键盘按下和键盘释放
通过键盘的按下与释放可以实现多键同时按下,比如ctrl+v的粘贴等,为了实现多键同时,我们还有hotkey('ctrl','c'),可以接受多个参数,按照传入顺序按下,再按照相反的顺序释放
from pyautogui import keyDown,keyUp keyDown('space') # 按下空格键 keyUp('space') # 释放空格键 keyDown('ctrl') keyDown('c') keyUp('c') keyUp('ctrl') hotkey('ctrl','c')
press:按键后立即释放
可以看作按下和释放的一个组合,比如我们要发送消息,按enter键,按完之后就会释放,因此press应用起来较多
字母的大小写不影响按键,比如Enter,我们可与编写为press('enter'),press('ENter')
有的键位有两个,比如Shift,在后面加上left或者right,press('shiftleft')
需要强调的是enter按键公认为换行,可以用\n代替,即press('enter')=press('\n'),tab键可用\t代替
上下左右键分别为up,down,left,right
typewrite():连续打字
这里的typewrite可以识别大小写
from pyautogui import typewrite typewrite('ceshi',0.5) #第一个参数是要输入的内容,第二个参数是每次按键的间隔时间 typewrite(['c','e','s','h','i']) #也可以传入一个单个字符串的列表 typewrite(['S','u','n'])#typewrite('Sun',0.5) #将会输入大写的S
提示信息
提示框
from pyautogui import alert print(alert(text='一个测试',title='test')) #点击确定后将返回OK
选择框
from pyautogui import confirm print(confirm('请选择性别',buttons=['男','女'])) #将输出你的点击项
输入密码
from pyautogui import password print(password('请输入你的密码')) #将输出刚才输入的密码
输入普通内容
from pyautogui import prompt print(prompt('请输入你的账号')) #将返回刚才输入的内容
总结
加载全部内容