sikuli-driver team mailing list archive
-
sikuli-driver team
-
Mailing list archive
-
Message #31778
Re: [Question #264563]: How to get a final sorted match list after more than one findAll()
Question #264563 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/264563
Status: Solved => Open
eduardobedoya is still having a problem:
Hi Raiman, I've read the python tutorial, and Im reading the sikuli one
I got the script to do what I was intending to, but it takes 6 seconds to complete
I guess I have some useless stuff cluttering the script, please could you take a look at it and tell me if there could be some fixes?
Thanks Advanced, this is my script...
App.focus("IrfanView")
Settings.DelayAfterDrag = 0.5
Settings.DelayBeforeDrop = 0.5
Settings.MoveMouseDelay = 0.5
WhtNumImg = 0
try:
matches = list(findAll(Pattern("1429333732294.png").exact()))
WhtNumImg = len(matches)
except FindFailed:
pass #nothing to do
if WhtNumImg > 0:
sortedMatchesA = sorted(matches, key=lambda m:m.y) # sorts top to bottom
BlkNumImg = 0
try:
matches = list(findAll(Pattern("1429334230870.png").exact()))
BlkNumImg = len(matches)
except FindFailed:
pass #nothing to do
if BlkNumImg > 0:
sortedMatchesB = sorted(matches, key=lambda m:m.y) # sorts top to bottom
WhtStartImg = 0
try:
matches = list(findAll(Pattern("1429334355293.png").exact()))
WhtStartImg = len(matches)
except FindFailed:
pass #nothing to do
if WhtStartImg > 0:
sortedMatchesC = sorted(matches, key=lambda m:m.y) # sorts top to bottom
BlkStartImg = 0
try:
matches = list(findAll(Pattern("1429334504677.png").exact()))
BlkStartImg = len(matches)
except FindFailed:
pass #nothing to do
if BlkStartImg > 0:
sortedMatchesD = sorted(matches, key=lambda m:m.y) # sorts top to bottom
# I first tried to apped all matches in this way below, but I it add the numers like 7,0,1,1
#AllImg=[]
#AllImg.append(WhtNumImg)
#AllImg.append(BlkNumImg)
#AllImg.append(WhtStartImg)
#AllImg.append(BlkStartImg)
# Instead combining all matches in this way below give the result 9 instead of 7,0,1,1 (the same applied to AllsortedMatches)
AllImg = WhtNumImg + BlkNumImg + WhtStartImg + BlkStartImg
AllsortedMatches = sortedMatchesA + sortedMatchesC + sortedMatchesD
if AllImg > 0:
FinalsortedMatches = sorted(AllsortedMatches, key=lambda m:m.y) # sorts top to bottom
for index, item in enumerate(FinalsortedMatches):
hover (item)
print index, item
print "AllImg:", AllImg
I have a little bug in this script above:
The second image to find (sortedMatchesB) doesn't appear in my sample, and this happens, if I add sortedMatchesB to AllsortedMatches I get an error saying that sortedMatchesB doesn't exists. In my case all A B C D images may appear or may not, how can I add them even if they are 0 value, do I just create a variable sortedMatchesB = 0???
Thanks Advanced.
--
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.