如何让pyautogui.click()持续重试直到目标图片出现后再运行后续代码
解决方案
你可以通过pyautogui.locateOnScreen()搭配超时循环的方式实现动态等待,直到目标图片出现后再执行点击操作,无需固定等待20秒,优化方案如下:
首先导入所需依赖:
import pyautogui import time
优化后的代码示例:
# 点击第一张图触发后续页面加载 pyautogui.click('AutorizarOnline.png') # 配置最大等待时长,设置25秒比你最长需要的20秒多留余量,可按需调整 max_wait = 25 start_time = time.time() confirm_btn = None # 循环检测目标图片是否出现 while time.time() - start_time < max_wait: # confidence为识别置信度,允许小范围的色差、尺寸偏差,避免系统渲染差异导致识别失败 confirm_btn = pyautogui.locateOnScreen('Confirmar.png', confidence=0.8) if confirm_btn is not None: # 找到目标图片后点击,跳出循环执行后续代码 pyautogui.click(confirm_btn) break # 每次检测间隔0.5秒,降低CPU占用,可按需调整间隔时长 time.sleep(0.5) else: # 超过最大等待时间未找到目标时的异常提示,可按需修改逻辑 raise Exception("等待超时,未找到Confirmar.png对应的确认按钮")
补充说明
如果使用confidence参数时报错,需要先安装opencv依赖:直接在Visual Studio Code的终端执行pip install opencv-python即可。
内容的提问来源于stack exchange,提问作者Carlos Samuel
相关产品推荐
相关产品推荐

