pyautogui库的一些鼠标操作

发布于:2025-07-08 ⋅ 阅读:(12) ⋅ 点赞:(0)

        pyautogui是一个跨平台的自动化库,提供了很多方便的功能,包括获取鼠标位置和对鼠标进行一些操作。    

pyautogui.position()  获取当前鼠标位置

pyautogui.position():获取当前鼠标光标在屏幕上的位置。


1.功能
        返回当前鼠标光标在屏幕上的坐标位置,返回值是一个元组(x, y),分别表示鼠标光标在屏幕水平方向(x轴)和垂直方向(y轴)上的像素位置。


2.返回值

• 返回类型:tuple,包含两个整数(x, y)。

• x:鼠标光标在屏幕水平方向上的像素坐标。

• y:鼠标光标在屏幕垂直方向上的像素坐标。

• 坐标系:坐标系的原点(0, 0)位于屏幕的左上角,x 坐标从左到右递增,y 坐标从上到下递增。

如果鼠标光标位于屏幕左上角:

• pyautogui.position()将返回(0, 0)。

如果鼠标光标位于屏幕右下角:

• pyautogui.position()将返回(1919, 1079)(假设分辨率是 1920x1080)。


3.应用场景

• 自动化测试:在自动化测试中,可以通过pyautogui.position()获取鼠标当前位置,以便在后续操作中精确地移动鼠标到目标位置。

• 脚本调试:在编写 PyAutoGUI 脚本时,可以通过打印鼠标位置来调试脚本,确保鼠标移动到正确的位置。

• 用户交互:在某些交互式脚本中,可以根据鼠标位置动态调整程序的行为。


4.注意事项

• 多显示器环境:如果连接了多个显示器,pyautogui.position()返回的是鼠标在所有显示器范围内的全局坐标。例如,如果主显示器分辨率为 1920x1080,副显示器分辨率为 1280x720,且副显示器位于主显示器右侧,则副显示器的左上角坐标为(1920, 0),副显示器右下角坐标为(3200, 720)。

• 性能影响:pyautogui.position()是一个实时获取鼠标位置的函数,频繁调用可能会对程序性能产生一定影响,尤其是在高分辨率屏幕上。如果需要频繁获取鼠标位置,建议合理控制调用频率。


5.扩展
pyautogui.position()还可以接受可选参数`x`和`y`,用于指定返回值的格式:

• 如果不传参数,直接返回(x, y)。

• 如果传入参数,例如pyautogui.position(x=100),则返回`(100, 当前y坐标)。

pyautogui.moveTo()  绝对移动

import pyautogui
import time

# 移动到坐标(500, 500)
pyautogui.moveTo(500, 500)

# 带持续时间的平滑移动(2秒内移动到目标位置)
pyautogui.moveTo(1000, 800, duration=2)

moveRel(xOffset, yOffset) 相对移动

import pyautogui
import time

# 向右移动100像素,向下移动50像素
pyautogui.moveRel(100, 50)

# 带持续时间的平滑相对移动
pyautogui.moveRel(-50, 0, duration=1)  # 向左移动50像素

pyautogui.size()  屏幕分辨率

import pyautogui

width, height = pyautogui.size()
print(f"屏幕分辨率: {width} x {height}")

pyautogui.click()  模拟鼠标点击

# 在坐标(500, 500)处点击
pyautogui.click(x=500, y=500)

# 带延迟的点击(先移动到目标位置,再点击)
pyautogui.click(x=1000, y=800, duration=1)  # 1秒内移动到位置再点击
# 右键点击
pyautogui.click(button='right')

# 中键点击指定位置
pyautogui.click(x=500, y=500, button='middle')
# 双击当前位置(间隔0.2秒)
pyautogui.click(clicks=2, interval=0.2)

# 在坐标(500, 500)处三击,间隔0.5秒
pyautogui.click(x=500, y=500, clicks=3, interval=0.5)
pyautogui.doubleClick()    # 双击左键。
pyautogui.rightClick()    # 右键点击。
pyautogui.middleClick()    # 中键点击。


网站公告

今日签到

点亮在社区的每一天
去签到