Команда Sikuli IDE wait("image") не ожидает появления изображения перед продолжением сценария

Я новичок в Sikuli и пробую его с помощью очень простого сценария, который выглядит следующим образом...

подождите и нажмите cmds, и они работают, проблема, с которой я сталкиваюсь, wait("1513068228396.png",3600) не ожидает появления изображения, он ждет от 10 до 15 секунд и выполняет следующий cmd. Я попытался включить некоторые журналы, а также попытался с другими изображениями для того же ожидания cmd, все тот же результат.

wait("1513067960826.png",60)
click(Pattern("1513066493827.png").targetOffset(-106,2))
sleep(2)
click("1513066637741.png")
sleep(1)
click("1513599247108.png")
sleep(5)
print "wait for my image"

wait("1513068228396.png",3600)  # Facing issue in this line

print "found my image"

outputLog:

wait for my image
[debug] Region: find: waiting 3600.0 secs for 1513068228396.png to appear in R[0,0 1920x1080]@S(0)
[debug] Image: reused: 1513068228396.png (file:/D:/softwares/sikuli/SENINFO_V100R002C00SPC700.sikuli/1513068228396.png)
[debug] Region: checkLastSeen: not there
[debug] Region: find: 1513068228396.png has appeared at M[832,379 30x16]@S(S(0)[0,0 1920x1080]) S:0.70 C:847,387 [753 msec]
found my image

Любое предложение, как решить эту проблему.

2 ответа

Возможно, у этого изображения есть сходство с каким-то регионом на экране. Вы можете попытаться установить сходство с максимальным значением:

wait(Pattern("some_image.png").similar(0.8),) # if you want the 80% of similarity
wait(Pattern("some_image.png").exact()) # if you want the 100% of similarity

Кроме того, я призываю вас использовать, если существует, а не ждать. Ожидание завершит программу, если изображение не существует:

if exists(Pattern("some_image.png").exact(),3600):
    click("some_image.png")

Вы можете найти документацию по шаблону здесь

wait(pattern, 3600) эквивалентно wait(pattern, FOREVER) который описан здесь и будет ждать паттерн бесконечно. В случае, подобном вашему, единственное, что может объяснить это поведение, - это если шаблон действительно был найден на экране, а строка ниже подтверждает, что:

Region: find: 1513068228396.png появился в M[832,379 30x16]@S(S(0)[0,0 1920x1080]) S:0,70 C:847,387 [753 мсек]

Возможно, этот шаблон появляется в другом месте, и вы пропустили его? Или, может быть, параметр подобия слишком низкий, и другой шаблон распознается. Чтобы проверить это, попробуйте использовать highlight(1) метод.

ptrn = find("pattern.png")
ptrn.highlight(1)

Это может пролить свет.

Другие вопросы по тегам