我正在运行 linux (Pop OS 22.04),我正在尝试使用 pyautgui.locateOnScreen 方法进行循环,代码如下:
def __clicks_print(area, *print_names, clicks=1):
loc = None
while not loc:
for print_name in print_names:
loc = pyautogui.locateOnScreen(print_name, region=area)
print(loc)
if loc:
break
pyautogui.moveTo(loc)
pyautogui.click(clicks)
当我尝试运行该函数时,程序最终停止并出现以下错误:
raise ImageNotFoundException # Raise PyAutoGUI's ImageNotFoundException.
奇怪的是,我在 Windows 中使用了这种确切类型的循环,并且它正常工作,程序不断寻找 loc,直到找到一个。
我尝试复制与 Windows 计算机上完全相同的功能,但它不起作用,程序在无法找到像素时不断停止。 我希望程序继续查找,直到找到屏幕上的像素。这样我就可以给函数多次打印来定位。
我设法通过使用 try except 让它工作,所以我可以忽略异常。我仍然不明白为什么它可以在没有它的情况下在 Windows 上运行。 代码:
def __clicks_print(area, *print_names, clicks=1):
loc = None
while not loc:
for print_name in print_names:
try:
loc = pyautogui.locateOnScreen(print_name, region=area)
print(loc)
if loc:
break
except:
pass
pyautogui.moveTo(loc)
pyautogui.click(clicks)