Ich habe andere Fragen wie (Python 'if x is None' not catching NoneType) überprüft und ich fand nicht, dass die Information für mein Szenario verwendbar war.Python3 "Wenn" nicht das fängt, was es überprüft
import pyautogui
##########################
#This is a looping routine to search for the current image and return its coordinates
##########################
def finder(passedImage, workSpace): #start the finder func
print (passedImage) #print the image to be found
currentImage = pyautogui.locateOnScreen(passedImage,region=(workSpace), grayscale=True) #search for the image on the screen
if currentImage == None: # if that initial search goes "none" ...
print ("Looking") #Let us know we are looking
finder(passedImage,workSpace) #go and do the function again
print(currentImage) #print out the coordinates
currentImageX, currentImageY = pyautogui.center(currentImage) #get the X and Y coord
pyautogui.click(currentImageX, currentImageY) #use the X and Y coords for where to click
print(currentImageX, currentImageY) #print the X and Y coords
Die Idee ist einfach für das Skript. Es ist nur, um die Koordinaten eines Bildes zu finden und dann klicken Sie darauf mit der pyautogui Bibliothek (Modul? Neue Terminologie für mich)
Es funktioniert alles außer für die "if currentImage == None:" -Bit.
Es fängt manchmal auf, wenn currentImage Kein ist, und führt dann die Funktion ordnungsgemäß erneut aus, um es zu erhalten, aber andere Male nicht. Ich kann keinen Reim oder Grund dahinter manchmal arbeiten und andere Zeiten nicht finden.
Vorschläge, wie ich für None überprüfen kann und dann dort reagieren Keine große :)
Ein Beispiel Fehler, der Wurf wäre zu sein, ist das Folgende: geschieht
Traceback (most recent call last):
File "fsr_main_001.py", line 57, in <module>
newItem()
File "fsr_main_001.py", line 14, in newItem
finder.finder(passedImage,workSpace)
File "/home/tvorac/python/formAutomation/finder.py", line 14, in finder
currentImageX, currentImageY = pyautogui.center(currentImage) #get the X and Y coord
File "/usr/local/lib/python3.5/dist-packages/pyscreeze/__init__.py", line 398, in center
return (coords[0] + int(coords[2]/2), coords[1] + int(coords[3]/2))
TypeError: 'NoneType' object is not subscriptable
den Finder aufrufen wieder rekursiv nichts an der Tatsache ändern, dass currentImage None ist, wenn die Rekursion zurückkehrt. –