我有一个简单的 SikuliX 脚本,用于在游戏中自动执行一些简单的测试任务。该脚本只是一个无限的while循环,它会在屏幕上进行一些点击和拖放一些东西。它运行正常,但有时,显然无缘无故地停止运行。有时它会运行几个小时,有时它只持续 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')
当脚本停止时,我检查 sikulx IDE 以查看是否有任何异常抛出但没有。我还检查了终端,因为我使用命令运行它,java -jar sikulixide-2.0.4.jar
但也没有看到错误消息。这里有什么问题?为什么循环不能无限期地运行?提前致谢。
编辑所以我把这两条打印消息,一个在except块中,另一个在循环结束后,并注意到当错误发生时,这些消息都没有被打印,我仍然不知道该怎么做才能找出发生了什么. 我注意到它发生的大多数(但不是全部)时间只是在运行type(Key.DOWN, Key.CTRL)
/type(Key.UP, Key.CTRL)
命令之后。