1.获取截图在当前屏幕的位置

  • 语法:

import pyautogui

pyautogui.locateOnScreen(pathName)
  • 参数

pathName:截图图片的路径+名字

  • 返回值

返回的是一个位置元组(top、left、width、height),如果匹配不到则返回None

  • 示例

安装 OpenCV:pip3 install opencv-python pillow --upgrade

import pyautogui

#1.获取截图在当前屏幕位置区域
print(pyautogui.size())
res = pyautogui.locateOnScreen('./test1.png',confidence=0.8) #安装openCV,使用confidence降低匹配精度
print(res)

macOS 特有的干扰因素

① Retina 显示器的 HiDPI 渲染

  • 现象:逻辑分辨率(如 1440x900)与物理分辨率(如 2880x1800)不一致

  • 影响:截图图像可能包含:

    • 亚像素边缘抗锯齿

    • 非整数倍缩放导致的模糊

2.通过位置或者中心坐标

pyautogui.center((top,left,width,height))
  • 参数

传入位置元组:(top,left,width,height)

  • 示例

import pyautogui

#1.获取截图在当前屏幕位置区域
print(pyautogui.size())
res = pyautogui.locateOnScreen('./test2.png',confidence=0.95)
print(res)



#2.获取区域的中心坐标
x, y = pyautogui.center(res)

scale_factor = 0.5  # 缩放因子 macOS使用的是逻辑分辨率 比较特殊
corrected_x = x * scale_factor
corrected_y = y * scale_factor

#3.模拟点击
pyautogui.click(corrected_x, corrected_y)

3.一步获取图片中心坐标(获取截图在当前屏幕的位置+通过位置或者中心坐标)

# 一步获取图片中心坐标
x,y = pyautogui.locateCenterOnScreen('./test1.png',confidence=0.95)
print(x,y) #macOS这里需要*0.5

4.匹配屏幕所有的目标图片

  • 语法

pyautogui.locateAllOnScreen(pathName)
  • 示例

#匹配屏幕所有的目标图片
res = pyautogui.locateAllOnScreen('./test3.png',confidence=0.95)
print(res)

for i in res:
    print(i)