user5713188
user5713188

Reputation:

Retry loop until condition met

I am trying to navigate my mouse on object but I want to create a condition that will check if "surowiec" is still on the screen, if not I want to skip loop and go to another one. After it finish the second one get back to first and repeat.

[error] script [ Documents ] stopped with error in line 12 [error] FindFailed ( can not find surowiec.png in R[0,0 1920x1080]@S(0) )

w_lewo = Location(345,400)
w_prawo = Location(1570,400)
w_gore = Location(345,400)
w_dol = Location(345,400)

surowiec = "surowiec.png"

while surowiec:
    if surowiec == surowiec:
        exists("surowiec.png") 
        if exists != None:
            click("surowiec.png")    
            wait(3)
            exists("surowiec.png") 
        elif exists == None:
            surowiec = None    
            click(w_prawo)
            wait(8)
            surowiec = surowiec

Upvotes: 0

Views: 3167

Answers (1)

Tenzin
Tenzin

Reputation: 2505

How about a small example:

while True:
    if exists(surowiec):
        print('A')
        click(surowiec)
    else: 
        print('B')
    break

A while loop that is True will always run, until it it meets a break to exit the loop. Also have a look at the functions that are available in Sikuli, it can somethimes be hard to find them, that they are available. So here are a few nice ones:

Link: Link 1 and Pushing keys and Regions

The commands that I found myself very usefull are is exists and if not exists, and find that will allow to locate an image on the screen. Then you don't have to find an image over and over again if it stays on the same location. image1 = find(surowiec)

Upvotes: 1

Related Questions