sikuli-driver team mailing list archive
-
sikuli-driver team
-
Mailing list archive
-
Message #19115
Re: [Question #232031]: Detecting one of two outcomes to an action
Question #232031 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/232031
Status: Open => Answered
RaiMan proposed the following answer:
... nearly perfect ;-)
while 1:
if exists(end_condition, 0): # comes back after one try
break
if exists(action_available, 0):
doubleClick(getLastMatch()) # no additional search
sleep(5)
-- # comes back after one try
normally all explicit or implicit search operations wait the standard waiting time (3 seconds) for the target to appear.
Setting the second parameter of exists() to 0, let it come back immediately after the first search. With restricted search regions, you might be able to perform up to 10 exists(ing,0) per second.
-- # no additional search
especially after having used exists() or wait() and they succeed, the search region (the SCREEN in your case) still knows the last successful match, that can be recalled by using getLastMatch(), so your doubleClick(getLastMatch()) now happens instantly after a successful exists() and not after up to one second as with doubleClick(action_available), that searches again, what was already found before.
the snippet with version 1.0.0:
while 1:
if exists(end_condition, 0):
break
if exists(action_available, 0):
doubleClick() # clicks the last match
sleep(5)
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.