2016-09-19 7 views
1

Я пытаюсь щелкнуть не менее 3 одинакового изображения, но с findAll() У меня возникли трудности с сикули, желающими выбрать только 1 изображение, когда я не хочу, чтобы он выбирал любой, если его нет 3 или более.В Сикули, как найти и щелкнуть минимум 3 одинаковых изображения?

if exists(Pattern("1474201252795.png").similar(0.95)): 
    wait(1) 
    for x in findAll(Pattern("1474201252795.png").similar(0.95)): 
     click(x) 

ответ

2

Так просто сосчитать изображения первого и проверить, если количество выше, чем 3.

imageCount=0 

images = [] 

# find all images and store them in a list to prevent additional search 
for image in findAll("Win7StartBtn.png"): 
    images.append(image) 

#check list length and act accordingly 
if len(images) >= 3: 
    for image in images: 
     image.click() 
+0

Спасибо - это работает на 1 конкретного изображения. Если бы я хотел найти более одного изображения, я бы просто скопировал код x раз, или я делаю это сложнее, чем это должно быть? –

+0

Я столкнулся с одной проблемой. Когда установлено значение> = 2, он будет выбирать только 2, даже если есть 3,4,5 или 6 дополнительных изображений. –

+0

Я не уверен, что понимаю, что вы имеете в виду, когда говорите «более одного изображения»? Если вы хотели выполнить одну и ту же процедуру для других изображений, тогда вы можете определить эту часть кода как функцию и повторно использовать ее с разными аргументами, например имя изображения и количество изображений на экране, которое вы ожидаете увидеть. Затем вам нужно будет вызвать эту функцию для каждого отдельного изображения отдельно. –