为什么 pyautogui 抛出 ImageNotFoundException 而不是返回 None?

问题描述 投票:0回答:1

我正在尝试使用 pyautogui 制作图像识别程序。我希望程序在可以看到特定图像时打印

"I can see it!"
,在看不到特定图像时打印
"Nope nothing there"

我正在使用

pyautogui.locateOnScreen
对此进行测试。如果调用返回除
None
之外的任何内容,我将打印第一条消息。否则,我打印第二个。

但是,我的代码给了我一个 ImageNotFoundException,而不是在第二种情况下打印。为什么会出现这种情况?

import pyautogui

while True:
    if pyautogui.locateOnScreen('Dassault Falcon 7X.png', confidence=0.8, minSearchTime=5) is not None:
        print("I can see it!")
        time.sleep(0.5)
    else:
        print("Nope nothing there")
python pyautogui
1个回答
1
投票

来自 pyautogui 文档:

注意:从版本 0.9.41 开始,如果定位函数找不到提供的图像,它们将引发 ImageNotFoundException 而不是返回 None。

您的程序假定 0.9.41 之前的行为。要将其更新为最新版本,请将 if-else 块替换为 try- except:

from pyautogui import locateOnScreen, ImageNotFoundException

while True:
    try:
        pyautogui.locateOnScreen('Dassault Falcon 7X.png')
        print("I can see it!")
        time.sleep(0.5)
    except ImageNotFoundException:
        print("Nope nothing there")
© www.soinside.com 2019 - 2024. All rights reserved.