Python实现自动操作 GUI

目录

一、鼠标操作

1、鼠标移动

2、获取鼠标位置

3、鼠标点击

4、鼠标双击

5、鼠标按下弹起

6、鼠标拖动

7、鼠标滚动

二、屏幕处理

1、屏幕截图

2、获取屏幕分辨率

3、图像识别匹配

三、键盘输入

1、键盘按下

2、模拟输入文字

3、模拟输入特殊字符

4、模拟快捷键输入

四、提示信息

五、实例

1、实例1-实时获取鼠标坐标

2、实例2-自动点赞


        PyAutoGUI 是一个纯 Python 的 GUI 自动化工具,通过它可以让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。具体的模块安装方式就自己百度吧。。。。

        

以下是PyAutoGUI模块的全部功能介绍:

  1. 鼠标控制:PyAutoGUI可以模拟鼠标移动、单击、双击、右键单击、拖拽等操作,并且可以通过指定坐标来控制鼠标的移动位置。
  2. 键盘控制:PyAutoGUI可以模拟键盘按键操作,包括按键、释放键、输入文本等。此外,还可以模拟组合键和快捷键的操作。
  3. 屏幕操作:PyAutoGUI可以获取屏幕的大小、分辨率和颜色模式等信息,还可以进行屏幕截屏和录制。
  4. 窗口控制:PyAutoGUI可以获取和操作窗口的信息,包括窗口的位置、大小、标题等。还可以模拟窗口的打开、关闭和移动等操作。
  5. 菜单控制:PyAutoGUI可以模拟菜单的打开和选择操作,以及获取菜单项的文本信息。
  6. 对话框控制:PyAutoGUI可以模拟对话框的打开和关闭操作,并获取对话框中的文本信息和选项。
  7. 定时器控制:PyAutoGUI可以设置定时器,在指定的时间后执行特定的操作或函数。
  8. 触发器函数:PyAutoGUI提供了触发器函数,可以在满足特定条件时执行特定的操作或函数。例如,可以在鼠标左键按下时执行某个操作,或者在特定时间间隔后执行某个函数。
  9. 坐标定位:PyAutoGUI可以获取屏幕上的坐标位置,并使用坐标进行鼠标或键盘的操作。还可以通过坐标匹配函数来判断坐标是否符合特定条件。
  10. 像素操作:PyAutoGUI可以获取屏幕上的像素值,并进行像素级别的操作。例如,可以使用像素匹配函数来判断像素的颜色是否符合特定条件。
  11. 坐标变换:PyAutoGUI可以执行坐标的相对和绝对变换,以及执行相对和绝对坐标的操作。
  12. 文件路径处理:PyAutoGUI可以处理文件路径,包括文件路径的拼接、分割和判断等操作。
  13. 事件驱动模式:PyAutoGUI可以在事件驱动模式下运行,通过监听特定的事件来执行相应的操作或函数。例如,可以在按下特定按键时触发一个事件,并执行相应的函数。
  14. 日志记录:PyAutoGUI可以记录操作的日志信息,包括鼠标和键盘的操作信息、坐标位置等。这对于调试和记录自动化脚本的运行过程非常有用。

        总的来说,PyAutoGUI的功能非常丰富,能够满足各种自动化脚本的需求。通过使用这些功能,可以编写出高效、稳定、可靠的自动化脚本,提高工作效率和生活便利性。

一、鼠标操作

1、鼠标移动

# 移动鼠标
pyautogui.moveTo(200,400,duration=2)     # 绝对位置(200,400)移动
pyautogui.moveRel(200,500,duration=2)    # 相对位置(200,500)移动

里面的duration参数是移动的时间,单位为秒。

2、获取鼠标位置

print(pyautogui.position()) 

3、鼠标点击

# 鼠标点击,默认左键
pyautogui.click(100,100)   
# 单击左键
pyautogui.click(100,100,button='left')  
# 单击右键
pyautogui.click(100,300,button='right') 
# 单击中间 
pyautogui.click(100,300,button='middle')  

4、鼠标双击

# 双击左键
pyautogui.doubleClick(100,100)  
# 双击右键
pyautogui.rightClick(100,100)   
# 双击中键
pyautogui.middleClick(100,100) 

5、鼠标按下弹起

# 鼠标按下
pyautogui.mouseDown()   
# 鼠标释放
pyautogui.mouseUp()

6、鼠标拖动

pyautogui.dragTo(100,300,duration=1)     # 绝对位置拖动
pyautogui.dragRel(100,300,duration=1)    # 相对位置拖动

里面的duration参数是拖动的时间,单位为秒。

7、鼠标滚动

pyautogui.scroll(30000) 

二、屏幕处理

1、屏幕截图

im = pyautogui.screenshot()    # 获取整个屏幕的截图,并将其存储在变量 im 中
im.save('screenshot.png')    # 将截图保存为名为 'screenshot.png' 的图像文件
rgb = im.getpixel((100, 500))   # 获取截图中坐标为 (100, 500) 处的像素颜色,并存在变量 rgb 中
print(rgb)                      # 打印出获取的像素颜色的 RGB 值
match = pyautogui.pixelMatchesColor(500,500,(12,120,400))    # 检查屏幕上坐标 (500, 500) 处的像素颜色是否与给定的颜色值 (12, 120, 400) 匹配,并结果存在 match 中
print(match)                    # 打印出颜色匹配的结果

2、获取屏幕分辨率

# 获取屏幕分辨率
numx_y = pygui.size()
print(numx_y)

3、图像识别匹配

# 图像识别(一个)
oneLocation = pyautogui.locateOnScreen('1.png')
print(oneLocation)  

# 图像识别(多个)
allLocation = pyautogui.locateAllOnScreen('1.png')
print(list(allLocation))

三、键盘输入

1、键盘按下

pyautogui.keyDown('shift')    # 模拟按下 Shift 键
pyautogui.press('1')          # 模拟按下数字键 1
pyautogui.keyUp('shift')      # 释放 Shift 键

2、模拟输入文字

pyautogui.typewrite('python', 1)

里面的duration参数是模拟输入的速度,单位为秒。

3、模拟输入特殊字符

pyautogui.typewrite(['p','y','t','h','o','n','enter'])    # 模拟输入python后,模拟按下回车键

4、模拟快捷键输入

pyautogui.hotkey('ctrl','c')    # 模拟按下 Ctrl + C 键

四、提示信息

# 弹出选择框
way = pyautogui.confirm('该走哪条路?', buttons=['马路', '水路'])
print(way)

# 弹出警告框
alert = pyautogui.alert(text='警告!敌军来袭!', title='警告')
print(alert)

# 弹出密码框
password = pyautogui.password('输入密码')
print(password)

# 弹出普通输入框
input = pyautogui.prompt('输入指令:')
print(input)

五、实例

1、实例1-实时获取鼠标坐标

import pyautogui as pygui
import time

while True :
    print(pygui.position())    # 打印鼠标的位置
    time.sleep(0.2)            # 延时0.2s

2、实例2-自动点赞

首先需要把点赞图标保存为img.png图片​​​​​​,这里自行操作。

import pyautogui as pygui
import time

# 获取屏幕分辨率
numx_y = pygui.size()
print(numx_y)

numx = numx_y.width/2
numy = numx_y.height/2
print(numx,numy)

# 移动鼠标
pygui.moveTo(numx,numy,duration=0.2)     # 绝对位置(numx,numy)移动

# 循环检测5次
for x in range(0,5):
    
    # 图像识别(一个)
    oneLocation = pygui.locateOnScreen('img.png')
    print(oneLocation)
    
    # 判断是否识别到图标
    if(oneLocation==None):
        # 弹出警告框
        alert = pygui.alert(text='没找到自动点赞图标', title='警告')
    else:
        # 单击图标按钮
        pygui.click(oneLocation)
        # 弹出完成框
        alert = pygui.alert(text='已自动点赞,点击“OK”退出', title='成功')
        
        # 退出循环
        if(alert=='OK'):
            print("运行完成退出")
            break
        
    # 屏幕滚动
    pygui.scroll(-3000)


官方文档:Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation

你可能感兴趣的:(Python,python,开发语言)