python - PyAutoGui 类型错误 : cannot unpack non-iterable NoneType object

标签 python pyautogui

    import pyautogui
import cv2
import time
while(True):
    TradeFrom = pyautogui.locateCenterOnScreen("Screenshot_256.png", grayscale= True, confidence=0.9)
    TradeTo = pyautogui.locateCenterOnScreen("Screenshot_258.png", grayscale=True, confidence=0.9)
    if TradeFrom == None:
        if TradeTo == None:
           time.sleep(30)
           continue
        elif TradeTo != None:
           z,t=TradeFrom
           pyautogui.moveTo(z,t,3)
           pyautogui.rightClick()
           #TODO ÇOK YAPILACAK ŞEY VAR AMK
    else:
        x,y = TradeTo
        pyautogui.moveTo(x,y,3)
        pyautogui.rightClick()
        InviteToParty = pyautogui.locateCenterOnScreen("InviteToParty.png", grayscale= True, confidence=0.9)
        Invite_X,Invite_Y = InviteToParty
        pyautogui.moveTo(Invite_X,Invite_Y)

准确输出:

Traceback (most recent call last):
  File "C:/Users/emosc/PycharmProjects/heuheu/main.py", line 12, in <module>
    z,t=TradeFrom
TypeError: cannot unpack non-iterable NoneType object

如果我将 TradeFrom 和 TradeTo 放在 while 循环之外,它工作得很好,任何人都可以解释为什么我将其放入 while 循环后它会崩溃吗?

最佳答案

我认为你需要修复逻辑。现在您正在屏幕上寻找两个对象。您的声明是说,如果找不到第一个对象但找到第二个对象,则从第一个对象分配坐标...这是 None ,这就是您的代码失败的原因。不确定预期的结果是什么,但也许可以尝试一下:

import pyautogui
import cv2
import time
while(True):
    TradeFrom = pyautogui.locateCenterOnScreen("Screenshot_256.png", grayscale= True, confidence=0.9)
    TradeTo = pyautogui.locateCenterOnScreen("Screenshot_258.png", grayscale=True, confidence=0.9)
    if TradeFrom == None:
        if TradeTo == None:
           time.sleep(30)
           continue
        elif TradeTo != None:
           z,t=TradeTo
           pyautogui.moveTo(z,t,3)
           pyautogui.rightClick()
           #TODO ÇOK YAPILACAK ŞEY VAR AMK
    else:
        x,y = TradeFrom
        pyautogui.moveTo(x,y,3)
        pyautogui.rightClick()
        InviteToParty = pyautogui.locateCenterOnScreen("InviteToParty.png", grayscale= True, confidence=0.9)
        Invite_X,Invite_Y = InviteToParty
        pyautogui.moveTo(Invite_X,Invite_Y)

此外,我建议您使用中断键进行编码,这样很容易中断此循环

关于python - PyAutoGui 类型错误 : cannot unpack non-iterable NoneType object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70442076/

相关文章:

python-3.4 - 在不同分辨率的不同计算机上运行 Pyautogui

python - 如何分配热键?

python - 获取 int 对象不是可迭代错误

python-2.7 - 如何使用 PyAutoGUI 检测按键事件?

python - 是否可以在 headless (headless)模式下运行 PyAutoGUI?

python - 使用 mongmock 进行 py.test 中的 self._cursor.next() 异常

python - Numpy 数组仅将函数应用于某些元素

python - 如何将选定的数据条目应用到我的 to sql 更新功能?

postgresql - 尝试在 PostgreSQL 10 中选择数据时出现查询错误

python - 您可以设置屏幕尺寸并在没有显示器的情况下使用 pyautogui/selenium chrome 驱动程序吗