问题如标题,有时候目标消失也会报错,请问是什么问题导致?要如何解决?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:Zhang Kai
# 阴阳师自动挑战御魂副本
import pyautogui
import time
import random # 生成随机数模块
pyautogui.PAUSE = 1
cishu = 30 # 要挑战的次数
# 图像识别(一个)
btm = pyautogui.locateOnScreen('zan.png')
print('图像识别-1')
print(btm) # Box(left=1280, top=344, width=22, height=22)
# 图像识别(多个)
btm = pyautogui.locateAllOnScreen('zan.png')
print('图像识别-2')
print(list(btm)) # [Box(left=1280, top=344, width=22, height=22), Box(left=25, top=594, width=22, height=22)]
#im = pyautogui.screenshot() #返回屏幕的截图,是一个Pillow的image对象
#im.save('屏幕截图.png')
def zan(): #------挑战------
a2 = random.randint(0, 15) #生成0~180之间的随机数
print('随机数', a2, '生成成功')
# time.sleep(0.5) # 等待 0.5 秒
left, top, width, height = pyautogui.locateOnScreen('zan.png') # 寻找 图片"zan.png";
center = pyautogui.center((left, top, width, height)) # 寻找 图片的中心
pyautogui.click(center.x,center.y+a2,button='left') # 点击
print(center)
print(center.x,center.y)
print('点击成功!')
def zan2(): #------结算------
a1 = random.randint(0, 180) #生成0~180之间的随机数
print('随机数', a1, '生成成功')
left, top, width, height = pyautogui.locateOnScreen('zan2.png') # 寻找 图片"zan2.png";
center = pyautogui.center((left, top, width, height)) # 寻找 图片的中心
pyautogui.moveTo(center.x,center.y+a1)
pyautogui.click(center.x,center.y+a1,button='left') # 点击
print(center.x,center.y)
print('点击成功!')
i = 0
while i < cishu:
if pyautogui.locateOnScreen('zan.png'):
print('调用挑战函数中……')
yanshi1 = random.randint(0,6) #生成0~6之间的随机数
time.sleep(yanshi1) # 延时
zan() # 调用点击函数
print('当前挑战次数',i)
i += 1
elif pyautogui.locateOnScreen('zan2.png'):
print('调用结算函数中……')
yanshi2 = random.randint(0,8) # 生成0~6之间的随机数
time.sleep(yanshi2)
zan2() # 调用结算函数
else:
time.sleep(5)
print('没有识别到内容,5秒后继续尝试')
# pyautogui.scroll(-500) # 本页没有图片后,滚动鼠标;
#print('没有找到目标,屏幕下滚~')
下面是终端运行的结果
PS E:\代码\python> & 'C:\Users\isspa\AppData\Local\Programs\Python\Python39\python.exe' 'c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy\launcher' '64122' '--' 'e:\代
码\python\图像识别-1.py'
图像识别-1
Box(left=1233, top=519, width=66, height=36)
图像识别-2
[Box(left=1233, top=519, width=66, height=36)]
调用挑战函数中……
随机数 14 生成成功
Point(x=1266, y=537)
1266 537
点击成功!
当前挑战次数 0
Traceback (most recent call last):
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy_main.py", line 45, in
cli.main()
File "c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
run()
File "c:\Users\isspa.vscode\extensions\ms-python.python-2021.9.1230869389\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
runpy.run_path(target_as_str, run_name=compat.force_str("main"))
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 268, in run_path
return _run_module_code(code, init_globals, run_name,
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 97, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "C:\Users\isspa\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "e:\代码\python\图像识别-1.py", line 55, in
zan() # 调用点击函数
File "e:\代码\python\图像识别-1.py", line 31, in zan
left, top, width, height = pyautogui.locateOnScreen('zan.png') # 寻找 图片"zan.png";
TypeError: cannot unpack non-iterable NoneType object
下面是程序用到的图片