У меня есть простой скрипт SikuliX, который я использую для автоматизации некоторых простых задач тестирования в игре. Скрипт просто бесконечен, в то время как l oop делает несколько кликов и перетаскивает некоторые элементы на экран. Он работает нормально, но иногда, по-видимому, без причины, он останавливается. Иногда он работает часами, иногда длится всего 5 минут. Весь код выглядит так:
def mandaMagia(magia):
type(Key.ENTER)
sleep(0.1)
type(magia)
sleep(0.1)
type(Key.ENTER)
sleep(0.1)
def danca():
type(Key.DOWN, Key.CTRL)
sleep(0.2)
type(Key.UP, Key.CTRL)
sleep(0.1)
def reloadStn():
pos1 = Location(3136,260)
pos2 = Location(3136,450)
dragDrop(pos2, pos1)
sleep(0.2)
def alimentarC1():
rightClick(Location(3136,510))
sleep(0.2)
def alimentarC2():
rightClick(Location(2185,450))
sleep(0.2)
def alimentarC3():
rightClick(Location(1216,460))
sleep(0.2)
def loopPrincipal():
dancaCounter = 0
while 1:
try:
alimentarC2()
mandaMagia("s2")
danca()
alimentarC3()
mandaMagia("s3")
danca()
alimentarC1()
reloadStn()
mandaMagia("s1")
danca()
sleep(0.3)
except:
print('Exception thrown')
loopPrincipal()
print('script end')
Когда сценарий останавливается, я проверяю IDE sikulx, чтобы увидеть, есть ли какие-то исключения, но нет. Я также проверяю терминал, так как запускаю его командой java -jar sikulixide-2.0.4.jar
, но также не вижу сообщения об ошибке. Что здесь может быть не так? Почему l oop просто не работает бесконечно? Заранее спасибо.
РЕДАКТИРОВАТЬ Итак, я поместил эти два сообщения печати, одно в блоке исключений, а другое после конца l oop, и заметил, что когда происходит ошибка, ничего из эти сообщения напечатаны, я до сих пор понятия не имею, что еще нужно сделать, чтобы узнать, что происходит. Я заметил, что в большинстве (но не во всех) случаях это происходит просто после выполнения команд type(Key.DOWN, Key.CTRL)
/ type(Key.UP, Key.CTRL)
.