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