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

Pyautogui编写游戏自动化脚本时elif分支不生效问题求助

Pyautogui自动化脚本elif分支不生效问题解决方案

核心问题原因

  1. 判断逻辑不符合函数返回规则
    pyautogui.locateOnScreen() 仅会返回两种结果:识别到目标图片时返回坐标元组,未识别到返回None,原代码中elif分支写的!= False逻辑完全错误:None和False并不相等,无论是否识别到skip.png,该判断都会出现逻辑偏差,应该和if分支保持一致使用!= None做判断。
  2. 内层死循环阻塞外层执行
    第一个if分支内部嵌套了一个没有退出条件的while True循环,只要第一次触发了playable.png的识别逻辑,代码就会永远卡在内层循环中反复判断ok.png,永远不会回到外层循环执行elif分支的判断,这是elif分支完全不触发的核心原因。
  3. 路径格式错误
    skip.png的路径混用了正斜杠和反斜杠C:/Users\E7440/,部分系统下会出现路径识别失败,无法正常读取图片的问题。

修复方案

  • 修正elif分支的判断逻辑,将pyautogui.locateOnScreen('xxx/skip.png',confidence = 0.6) != False改为pyautogui.locateOnScreen('xxx/skip.png',confidence = 0.6) != None
  • 给内层while循环增加break退出条件,完成ok.png对应的操作后直接跳出内层循环,回到外层主循环继续执行其他判断
  • 统一所有文件路径的斜杠格式,全部使用正斜杠或者双反斜杠,避免路径读取失败
  • 可选在每个判断分支增加打印日志,方便后续排查识别结果

修复后参考代码

import pyautogui,time 
pyautogui.click(610,753)
while True:
    time.sleep(1)
    if pyautogui.locateOnScreen('C:/Users/E7440/Desktop/playable.png',confidence = 0.6) != None:
         pyautogui.click(626,307)
         time.sleep(3)
         pyautogui.click(713,610)
         time.sleep(1)
         pyautogui.click(729,648)
         time.sleep(5)
         pyautogui.click(580,447)
         time.sleep(0.5)
         pyautogui.click(665,444)
         time.sleep(0.5)
         pyautogui.click(750,445)
         time.sleep(0.5)
         pyautogui.click(662,695)
         time.sleep(60)
         # 内层循环增加break退出逻辑
         while True:
               if pyautogui.locateOnScreen('C:/Users/E7440/Desktop/Class 7/Science/ok.png',confidence = 0.6) != None:
                pyautogui.click(632,690)
                time.sleep(4)
                pyautogui.click(819,690)
                time.sleep(1)
                pyautogui.click(753,690)
                time.sleep(6)
                # 操作完成后跳出内层循环,回到外层主循环
                break
    elif pyautogui.locateOnScreen('C:/Users/E7440/Desktop/skip.png',confidence = 0.6) != None:
           pyautogui.click(626,307)
           print("Found the right one")
           time.sleep(10)
           pyautogui.click(795,52)
           time.sleep(5)

原提问者已验证,调整判断逻辑和内层循环后问题已修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:15:01