Sikuli:for循环/如果else语句无法正常工作

问题描述 投票:1回答:1

我在Sikuli下面的代码,不会复制和粘贴任务。我希望它执行的动作里面“如果不存在”时,不存在caption.png,但有时即使它没有,它仍然试图找到它,并返回,说“找不到字幕错误。 PNG”。

     for idx in range(1, 77):
         if not exists("caption.png"):
              click("1406907972716.png")
              type(Key.PAGE_DOWN)        
              print "skip" + str(idx)
         else: 
              click("caption.png")
              type(Key.F2)
              type("a", KeyModifier.CTRL)
              type("c", KeyModifier.CTRL)
              click("CLICKBOX-4.PNG")
              click("BOX2-4.PNG")
              type("a", KeyModifier.CTRL)
              type(Key.DELETE)
              type("v", KeyModifier.CTRL)
              type(str(idx))
              type(Key.HOME)
              for i in range(25):
                  type(Key.DELETE)
              click("1406907972716.png")
              type(Key.PAGE_DOWN)

我尝试以下和它的工作,但别的东西不能正常工作:有时它随机跳到一个IDX。找不出原因:

    for idx in range(1, 77):
        if not exists("caption.png"):
            click("1406907972716.png")
            type(Key.PAGE_DOWN)        
            print "skip" + str(idx)
        else: 
            if exists("caption.png"):
                click("caption.png")
                type(Key.F2)
                type("a", KeyModifier.CTRL)
                type("c", KeyModifier.CTRL)
                click("CLICKBOX-4.PNG")
                click("BOX2-4.PNG")
                type("a", KeyModifier.CTRL)
                type(Key.DELETE)
                type("v", KeyModifier.CTRL)
                type(str(idx))
                type(Key.HOME)
                for i in range(25):
                    type(Key.DELETE)
                click("1406907972716.png")
                type(Key.PAGE_DOWN)
python for-loop sikuli
1个回答
0
投票

你们是不是要做到这一点在sikuli-IDE?这个问题有有并不总是提供了良好的回溯。

在第二个例子中,你似乎完全可能跳过的索引,因为没有找到字幕因此没有执行,并跳转到下一个迭代。这是跳过与没有输出迭代,因为所有的代码是if块重新检查,对于已经被确定为存在的东西之内。

我想,在第一部分的问题是你没有找到匹配,然后在click()调用失败(和回溯不会导致帮助)。 exists()返回匹配,并且还为getLastMatch()值。您可以尝试要么设置与exists()或else子句中使用getLastMatch().click()点击该结果表明,区域(大概是你的“caption.png”)返回匹配的局部变量。

您也可以尝试在exists()行指定的等待时间。

最后,你可以尝试设置每个图像的图案,并使用相似削结果到一个单一的比赛。

这是很难给出一个明确的答案,没有一个屏幕截图或信息关于什么是在屏幕上,有多少图像可在屏幕上。我不能评论还,但如果你能提供更多的信息,我可以编辑这个答案,包括更具体的答案。

© www.soinside.com 2019 - 2024. All rights reserved.