在我自己学pyautogui时,用pyautogui想自己做一个刷课程序,这样我就可以解放双手啦!(咳咳,绝对不是想水学分)但是在实际操作时却遇到一个问题就是当locateonscreen方法找不到图片时,pyautogui就会报错,而不像网上的一样返回None值,无法继续进行程序的运行,这折磨了我好久好久,研究了好久后,终于解决啦!

打开pyautogui依赖的pyscreeze\__init__.py文件,我们会找到报错的源头:

32bbaf1c944f4f298f95d8299a812f8a.png

在这里就说了,“你需要保证pyscreeze.USE_IMAGE_NOT_FOUND_EXCEPTION的值时‘True’,这个程序就会在没有找到图片时报错,否则它就会返回None值。

671565c94be4448eaf7e6b1606b46e4e.png

于是我们找到USE_IMAGE_NOT_FOUND_EXCEPTION,源头找到啦!!上面说在0.1.19版本时就已经升级,用报错来取代返回None值了,那是其实还是保留了返回None值的功能——只需要把开关打开,就是图片最下面那行代码的True改成False(我这时已经改过了的)就好啦!

除此之外,我们还有另外的解决方法,就是可以在你的代码中增加try方法,这样就可以做到判断图片是否找到同时不会终止程序的运行啦!

import pyautogui

try:
    picture_loc = pyautogui.locateCenterOnScreen(picture, confidence=confidence)
except:
    print('哈哈哈哈,没找到图片!!!')

就是这样,希望能帮上大家!

~(> w <)~

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐