Python 如果图像出现在区域内,则结束循环
如果某个图像出现在某个区域内,我试图使脚本结束循环或退出 我运行脚本时出错;我不确定哪里不对,因为关于Python 如果图像出现在区域内,则结束循环,python,sikuli-script,Python,Sikuli Script,如果某个图像出现在某个区域内,我试图使脚本结束循环或退出 我运行脚本时出错;我不确定哪里不对,因为关于stopregion和stopimage的部分是由另一个人建议的 错误: [error] TypeError ( 'tuple' object is not callable ) 我的代码如下: Image1 = ("1453735625632-12.png") Image2 = ("1453723117924-16.png") stopRegion = (815,423,314,136) s
stopregion
和stopimage
的部分是由另一个人建议的
错误:
[error] TypeError ( 'tuple' object is not callable )
我的代码如下:
Image1 = ("1453735625632-12.png")
Image2 = ("1453723117924-16.png")
stopRegion = (815,423,314,136)
stopImage = ("1454946335394.png")
while True:
click(wait("1453202630435-1.png",FOREVER))
if stopRegion.exists("1454946335394.png", 0): # ends in error
break
click(wait("1453994048404-9.png",FOREVER))
click(wait("1453202812250-3.png",FOREVER))
while True:
print('Searching....')
if exists("1453723117924-17.png", 0):
click("1453723117924-18.png")
# Break loop.
break
if exists("1453735625632-14.png", 0):
click("1453735625632-15.png")
# Break loop.
break
click(wait("1453202882292-7.png",FOREVER))
非常感谢您的帮助。我想问题是
stopRegion = (815,423,314,136) # this is a tuple, not a Region
stopRegion.exists("1454946335394.png", 0) # a tuple does not have an .exists method
试试看
stopRegion = Region(815,423,314,136)
你还需要修正你的缩进,我建议给图片取一些更有意义的名字,比如
BUTTON1 = "1453994048404-9.png"
BUTTON2 = "1453202812250-3.png"
RESULT_A = "1453723117924-17.png"
RESULT_A_BUTTON = "1453723117924-18.png"
RESULT_B = "1453735625632-14.png"
RESULT_B_BUTTON = "1453735625632-15.png"
START = "1453202630435-1.png"
STOP = "1454946335394.png"
FINISHED = "1453202882292-7.png"
stop_region = Region(815,423,314,136)
done = False
while not done:
print("Starting search")
click(wait(START, FOREVER))
if stop_region.exists(STOP, 0):
print("Found STOP")
break
click(wait(BUTTON1, FOREVER))
click(wait(BUTTON2, FOREVER))
while True:
print('Searching....')
if exists(RESULT_A, 0):
print("Found RESULT_A")
click(RESULT_A_BUTTON)
# finished searching
done = True # set flag to exit outer while loop
break # leave inner while loop
if exists(RESULT_B, 0):
print("Found RESULT_B")
click(RESULT_B_BUTTON)
# go to next search
break # leave inner while loop but not outer one
click(wait(FINISHED, FOREVER))
exists()fcn是否在python中工作?每当我查找如何检查变量是否存在时,它都会说签入locals()或globals()谢谢,我不知道我现在可以给图像分配更干净的名称,但是即使图像显示,区域仍然被忽略。新代码不再有循环,它在结束时结束,而不是像我一样循环开始。有没有办法我可以添加回循环?我知道它在某个地方有一段时间是真的,但不确定在哪里插入它,而且因为停止图像不起作用,停止文本会起作用吗?正如在if stopregion.exists(停止图像0)中更改0之前,如果某个单词出现在区域中而不是图像中,我接受了您的建议并更改了区域代码,使其指向区域而不是元组没有错误,但区域也无法识别:to FOREVER作为一个测试,它第一次识别并不幸停止,因为FOREVER如果没有匹配,那么循环只会在该点永久暂停,我认为像5这样的低数字会有所帮助,但它会返回忽略区域图像,并继续循环,除非我添加FOREVER