python之GUI自动化控制
简介
- 通过注销关闭所有的程序。在window和linux的注销热键是Ctrl-alt-del,通过注销你会失去所有未保存的工作,但是你的计算机不会重启。
- 暂停和自动防御故障装置。可以使用try和except语句来处理这个异常,我们可以将pyautogui.PAUSE设置为1,即每次调用函数后悔暂停一秒,将其设置为true,启动自动防故障功能。
控制鼠标的移动
pyautogui的鼠标函数使用的是x、y坐标。原点x、y都是零,向右x坐标增加,向左y坐标增加。所有的坐标都是正整数,没有负坐标。
分辨率是屏幕的高和宽有多少像素,如果屏幕的分辨率设置为1920x1080,那么左上角的坐标是(0,0),右下角的坐标是(1919,1079)
import pyautogui
pyautogui.size() #根据不同的屏幕返回不同的值
width,height=pyautogui.size()#获得它的高和宽
pyautogui.moveTo(100,100,duration=0.25)#将函数鼠标立即移动到屏幕的指定位置。x和y坐标的整数值分别构成了函数的第一个和第二个参数。可选参数duration是整数或浮点数是关键字参数,指定了鼠标移动位置所需要的秒数。
pyautogui.moveRel(100,0,duration=0.25)函数相当于当前位置移动鼠标,也接受三个参数,向右移动多少个像素,向下垂直移动多少个像素,以及花多少时间来进行移动,第一和第二个参数可为负整数。
pyautogui.position()函数确定当前鼠标的位置。
项目实例:
现在鼠标在哪里?
- 获取当前鼠标的xy坐标
- 当前鼠标在屏幕上移动时,更新这些坐标
代码: - 调用函数取得当前坐标
- 在屏幕上打印。删除以前打印的坐标
- 处理异常,让用户能够按键退出
import pyautogui
print('press ctrl-c to quit.')
try:
while True:
x,y=pyautogui.posttion()
posttionStr='X:'+str(x).rjust(4)+Y:'+str(y).rjust(4)
print(positionstr.end='')
pront('\b'*len(positionStr),end='',flush=True)
控制鼠标交互
点击鼠标
要相计算机发送虚拟的鼠标点击,,就调用pyautogui.click()方法,传入x、y坐标作为可选的第一和第二参数,如果想指定鼠标按键,就加入button关键字参数,值分别是left,middle,right。
import pyautogui
pyautogui.click(100,50,button='left')
pyautogui.mouseDown()#按下鼠标按键
pyautogui.mouseUp()#释放鼠标按键
pyautogui.mouseClick()#函数执行双击鼠标左键
pyautogui.rightClink()#函数执行双击鼠标右键
pyautogui.middleClink()#函数将执行双击鼠标中键
#上面的几个值的参数与click相同
拖动鼠标
提供函数pyautogui.draTo()和pyautogui.draRel()函数,将鼠标拖到一个新的位置,或相对于当前的位置。dragTo()、dragRel()、moveTo()和moveRel()相同:x坐标(水平移动),y坐标(垂直移动),以及可选的时间间隔(如果鼠标移动太快,建议使用duration关键字参数)
import pyautogui,time
time.sleep(5)
pyautogui.click()
distance=200
while distance >0:
pyautogui.dragRel(distance,0,duration=0.2)
distance=distance-5
pyautogui.draRel(0,distance,duration=0.2)
pyautogui.draRel(-distance,0,duration=0.2)
distance=distance-5
pyautogui.draRel(0,distance,duration=0.2)
滚动鼠标
最后一个函数pyautogui鼠标函数是scroll(),向他提供一个整型参数,说明向上或者向下滚动多少个单位。
pyautogui.scroll(100)
处理屏幕
在python中获取屏幕快照,就调用pyautogui.sreenshot()函数
import pyautogui
im=pyautogui.sreenshot()#获取屏幕快照
im.getpixe3l((0.0))#获取屏幕快照RGB值,包含三个整数
pyautogui.pixeMatchesColor(50,200,(130,135,144))#第一和第二个参数是整数,对应y和x坐标,第三个参数是一个元组,包含三个整数,是屏幕必须匹配的RGB颜色。
图像识别
import pyautogui
pyautogui.locateOnScreen('submit.png')#获取屏幕的快照函数返回四个整数元组,左边的x,顶边的y,宽度及其高度,找不到就会返回none
pyautogui.center()#返回函数中心点的x,y坐标(传递的是一个元组)
pyautogui.click()#点击屏幕中的坐标
控制键盘
pyautogui有一些函数向计算机发送虚拟按键。
pyautogui.click(100,100);pyautogui.typewrite('hello world')#在坐标出发出虚拟的点击,typewrite()函数调用将向窗口发送文本hello world。typewriter()函数立即打印字符串,也可以传入第二个参数,字符之间暂停的秒数。
pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyup('shift')#这行代码按下shift键,按下并释放4次,然后再释放shift
复习pyautoGUI函数
move(x,y)将鼠标移动到指定的x,y坐标。
moveRel(x,y)相当于当前位置移动鼠标
dragTo(x,y)按下鼠标左键
dragRel(x,y)按下左键,相当于当前移动位置鼠标
click(x,y,button)模拟点击(默认是左键)
rightClick()模拟中键点击
doubleClick()模拟左键双击
mouseDown(x,y,button)模拟在x,y处按下指定鼠标按键
mouseUp(x,y,button)模拟在x,y柱释放指点建
sroll(units)模拟滚动滚轮。正参数表示向上滚动,负参数表示向下滚动
typewrite(message)输入给定消息字符串中的字符
typewrite([key],key2,key3]) 键入给定键字符串
press(key)按下释放给定键
keyDown(key)模拟按下给定键
keyUp(key)模拟释放给定键
hotkey([key1,key2,key3])模拟按顺序按下给定键,然后以相反的顺序释放
sreenshot()返回屏幕快照的image对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix