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

如何用Python PyAutoGUI实现等待屏幕图片出现后自动点击对应位置的功能

实现方案

你需要在原有逻辑基础上增加循环检测机制、超时控制和空值判断,避免识别不到图片时报错,同时降低CPU占用,完整实现代码如下:

import time
import pyautogui as pag

def click_image(img, timeout=30, interval=0.5):
    """
    等待目标图片出现并点击对应位置
    :param img: 待识别的目标图片路径
    :param timeout: 最长等待时长,单位为秒,默认30秒
    :param interval: 每次屏幕检测的间隔时长,单位为秒,默认0.5秒
    :return: 点击成功返回True,超时未找到目标返回False
    """
    start_timestamp = time.time()
    while time.time() - start_timestamp < timeout:
        target_pos = pag.locateCenterOnScreen(img, confidence=config.OPENCV_CONFIDENCE)
        # 仅识别到有效坐标时执行点击
        if target_pos:
            pag.click(target_pos)
            return True
        # 未识别到目标时等待后重试,避免占满CPU资源
        time.sleep(interval)
    return False

逻辑说明

  • 新增了超时控制,默认最多等待30秒,避免脚本因为目标图片一直不出现而无限卡死,你可以根据游戏实际加载速度调整timeout参数
  • 每次检测间隔0.5秒,不会过度占用系统资源,对识别速度要求高的场景可以调低interval参数
  • 只有返回有效坐标时才会触发点击逻辑,不会出现传入空值给click方法导致的报错
  • 调用方式和你原有函数保持一致,直接传入图片路径即可:click_image("目标按钮截图.png")

注意事项

  • 用于识别的截图必须从你的游戏界面直接截取,不要进行缩放、裁剪、调色操作,否则会大幅降低识别准确率
  • confidence参数建议设置在0.7~0.9区间,设置过高容易出现识别不到的问题,设置过低容易出现误识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:54:03