0

我有一个简单的 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)命令之后。

4

0 回答 0