如果图像不退出,使用 findall 和 clickall 不会出现错误
Using findall and clickall without getting an error if image doesn't exit
我不知道我做错了什么。只要显示 findall
的图像,代码就可以很好地工作,但如果 x
没有出现,那么我会收到错误消息:
[error] FindFailed ( can not find P(1474201252795.png) S: 0.99 in R[0,0 1920x1080]@S(0) )
不太确定如何解决这个问题。
running = True
def runHotkey(event):
global running
running = False
Env.addHotkey(Key.F1, KeyModifier.CTRL, runHotkey)
while exists("1474199877323.png")and running:
click("1474138615993.png")
click("1474138629993.png")
wait(5)
if exists("1474201633804.png"):
for x in findAll(Pattern("1474201252795.png").exact()):
click(x)
click("1474201809505.png")
else:
click("1474201689791.png")
wait(5)
根据文档 findAll
在搜索失败时抛出异常。 (docs)。尝试将 hasNext()
方法与上下文管理器一起使用,例如
with findAll(Pattern(...)) as mm:
while mm.hasNext():
x = mm.next()
// process x
使用try/catch
private boolean exists(Pattern img, int sec) {
try {
window.wait(img, sec);
return true;
} catch (FindFailed exception) {
return false;
}
}
另一种避免错误的方法是在使用 findAll 之前检查图像是否存在:
if exists("image_in_findAll.png"):
for x in findAll("image.png"):
...
我不知道我做错了什么。只要显示 findall
的图像,代码就可以很好地工作,但如果 x
没有出现,那么我会收到错误消息:
[error] FindFailed ( can not find P(1474201252795.png) S: 0.99 in R[0,0 1920x1080]@S(0) )
不太确定如何解决这个问题。
running = True
def runHotkey(event):
global running
running = False
Env.addHotkey(Key.F1, KeyModifier.CTRL, runHotkey)
while exists("1474199877323.png")and running:
click("1474138615993.png")
click("1474138629993.png")
wait(5)
if exists("1474201633804.png"):
for x in findAll(Pattern("1474201252795.png").exact()):
click(x)
click("1474201809505.png")
else:
click("1474201689791.png")
wait(5)
根据文档 findAll
在搜索失败时抛出异常。 (docs)。尝试将 hasNext()
方法与上下文管理器一起使用,例如
with findAll(Pattern(...)) as mm:
while mm.hasNext():
x = mm.next()
// process x
使用try/catch
private boolean exists(Pattern img, int sec) {
try {
window.wait(img, sec);
return true;
} catch (FindFailed exception) {
return false;
}
}
另一种避免错误的方法是在使用 findAll 之前检查图像是否存在:
if exists("image_in_findAll.png"):
for x in findAll("image.png"):
...