Ключевое слово Sikuli, которое вы ищете, существует (). Проверьте документы для более подробной информации.
Чтобы углубиться в ваш вопрос, я бы рассмотрел что-то вроде следующего:
if exists('img_a.png', 10):
click(x)
else:
click(y)
Это будет ждать 10 секунд для вашего скриншота. Как только это изображение будет обнаружено, оно перейдет в блок if и выполнит команду (и). Если изображение не найдено через 10 секунд, оно переместит блок else и выполнит эти команды.
Кроме того, обратите внимание, что в документации упоминается, что существует () поддерживает шаблоны и строки. Вы можете вызвать изображение по его имени или предоставить более подробную информацию о шаблоне. Например:
searchRegion = Region(x, y, w, h)
if searchRegion.exists(Pattern('img_a.png').exact(), 10):
click(x)
else:
click(y)
Приведенный выше скрипт предписывает регион для поиска и проверяет точное совпадение этого изображения в данном регионе. Вы можете изменить .exact () на .simil (0.90), чтобы настроить допуск соответствия. 0,01-0,99 являются действительными совпадениями, причем .exact и .simil (0.99) функционально совпадают.