【发布时间】:2020-11-28 20:37:36
【问题描述】:
我正在开发一个 python 机器人,旨在为点击游戏自动切换鼠标位置,但我一直随机收到此错误。我认为每次运行 while 命令时都给它一个值会修复它,但它没有显示任何改进。从我使用该程序看到的情况来看,如果它扫描并没有找到它试图定位的 2 个图像中的任何一个。
错误信息:
Exception has occurred: TypeError
cannot unpack non-iterable NoneType object
File "C:\Users\gpetr\Desktop\New folder (3)\program.py", line 21, in <module>
px, py = eyeloc
代码如下:
from pyautogui import *
import pyautogui
import time
import keyboard
import random
import win32api, win32con
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
eyeloc = 997, 456
while keyboard.is_pressed('q') == False:
eyeloc = 997, 456
if pyautogui.locateOnScreen('pink.png', region=(576, 160, 842, 592), confidence=0.8) != None:
eyeloc = pyautogui.locateCenterOnScreen('pink.png', region=(576, 160, 842, 592), confidence=0.8)
print("pink")
px, py = eyeloc
pyautogui.moveTo(px, py+130, 0.2)
time.sleep(0.4)
elif pyautogui.locateOnScreen('gold.png', region=(576, 160, 842, 593), confidence=0.8) != None:
eyeloc = pyautogui.locateCenterOnScreen('gold.png', region=(576, 160, 842, 592), confidence=0.8)
print("gold")
gx, gy = eyeloc
pyautogui.moveTo(gx, gy+130, 0.2)
time.sleep(0.4)
【问题讨论】:
-
你能添加完整的错误信息吗?错误发生在哪一行?
-
欢迎来到 SO!查看tour。如需调试帮助,请提供包含错误的minimal reproducible example。它将帮助我们和您更好地理解问题。
-
我最好的猜测是
locateCenterOnScreen正在返回None,所以当你尝试解压它时,就会抛出错误 -
您在 locateCenterOnScreen 后是否在检查
ImageNotFoundException? -
还要查看您在
locateOnScreen与locateCenterOnScreen中传递的区域参数。值是region=(576, 160, 842, 592)与region=(576, 160, 842, 593)。 592 与 593
标签: python python-3.x