2013-06-27 5 views
0

У меня есть скрипт в Сикули, который является ботом. Это выглядит следующим образом:Проверка изображения в цикле с Sikuli

for i in range (100): 
    find(YoutubeChannelButton) 
    click(YoutubeChannelButton) 
    wait(3) 
    while(1): 
     if exists(LikeButton): 
      click(LikeButton) 
      wait(6) 
      click(Close) 
      wait(10) 
     else: 
      click(Close) 
      wait(5) 

Я хочу, чтобы нажать кнопку «как», если она существует, и, когда он не существует, я хочу, чтобы нажать на кнопку закрытия, а затем повторить процесс снова и снова.

Так что в итоге:

  • Он проверяет изображение
  • Если это не там закрывает текущее окно
  • Затем он перезапускает процесс снова и снова.

Проблема в том, что он выполняет задание один раз (правильно), а затем начинает закрывать все страницы.

+0

Что такое «близко» точно? Если это целая страница, очевидно, это ваша проблема. –

ответ

1

Нам нужно будет увидеть скриншоты того, с чем вы работаете, но это похоже на то, что вы неправильно настроили свой цикл. Если LikeButton не существует, он закрывается и перезапускает цикл. Если у окна позади текущего нет LikeButton, то еще не будет существовать, поэтому мы закроем это окно и так далее.

Почему бы вам не написать это как

for i in range (100): 
    find(YoutubeChannelButton) 
    click(YoutubeChannelButton) 
    wait(3) 
    if exists(LikeButton): 
     click(LikeButton) 
     wait(6) 
     click(Close) 
     wait(10) 
    else: 
     click(Close) 
     wait(5)