You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyAutoGUI中pixelMatchesColor始终判定颜色匹配的问题排查

错误原因

你的代码存在两处核心认知偏差,直接导致了异常表现:

  • 对pixelMatchesColor的运行逻辑理解错误:该函数执行正常时只会返回True(颜色匹配)或False(颜色不匹配)的布尔值,不会因为颜色不匹配抛出任何异常。你用try/except包裹调用语句的写法完全无效:只要函数本身没因为坐标越界、截图权限不足这类真实运行错误抛异常,不管颜色匹不匹配,代码都会顺着try块往下执行,永远不会走到except分支,自然无论实际像素是什么颜色都会打印"Color found"。
  • 冗余截图的潜在问题:你先手动调用一次screenshot()读取像素颜色,之后调用pixelMatchesColor时函数内部会重新截取全屏再取色,如果两次操作之间屏幕有瞬时画面变化(比如动画、弹窗),可能出现两次读取颜色不一致的情况,虽然这不是本次bug的核心诱因,但会带来不必要的性能开销和判断误差。
修正方案

直接判断函数返回的布尔值即可,不需要使用异常捕获,同时可以复用同一张截图做判断减少误差:

def myFunction():
    im = pyautogui.screenshot()
    color = im.getpixel((1992, 1435))
    print(color)
    # tolerance为允许的色差值,0代表完全匹配,可根据需求调整为0-255之间的数值
    if pyautogui.pixelMatchesColor(1992, 1435, (85, 214, 142), tolerance=0):
        print("Color found")
    else:
        print("Color not found")

内容的提问来源于stack exchange,提问作者Fede777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:21:18