Sikuli点击不起作用

时间:2016-10-23 12:45:57

标签: automation sikuli

我正在使用SikulixIDE 1.1.0编写一个播放Yugioh游戏的脚本(在Windows 10 x64上运行)。 请参见主屏幕: Game screen

我手动启动游戏,然后运行如下脚本:

switchApp("Yu-Gi-Oh! PC")
click("1477213591920.png")

我的期望是名为" DUEL MODE"的链接。单击以转到下一个屏幕。光标始终移动到该链接,但有时它会起作用,有时则不起作用。

我检查日志并看到Sikuli发送了点击命令但由于某种原因,游戏不接受它。这是日志:

[log] App.focus: [8020:Yu-Gi-Oh!]
[log] CLICK on L(687,488)@S(0)[0,0 1366x768]

我已经尝试过了:

  • doubleClick代替click
  • sleep几秒钟
  • hoverclick

但是所有这些都不起作用。

3 个答案:

答案 0 :(得分:2)

我希望您尝试过的某些内容会有所帮助,但如果不是这样,您需要确定按钮是否实际触发。要做到这一点,你必须捕获下一个屏幕或其唯一标识它的任何部分。然后,您将使用一个具有预定义尝试次数的循环以及它们之间的等待时间,如果单击不起作用,则会多次单击。所以一般都是这样的(伪代码):

attempts = 3
for attempt in attempts:
    click(button)

    if (nextScreen is available):
        break

    sleep(time)

答案 1 :(得分:0)

对于Eugene S Answers,如果您使用的是SikuliX,您可以尝试以慢动作运行。此外,如果图像有一些效果(如亮度),您可以尝试在exists()内使用 Pattern

if exists(Pattern("DualMode.png").similar(0.6), time_in_seconds):
    click(Pattern("DualMode.png").similar(0.6))

默认情况下,similar()值为0.8,因此如果图像有一些效果,例如,颜色每秒更改一次,则可以设置0到1之间的较低值。

PS:如果存在并且单击,请不要忘记将模式放在里面,因为如果你没有放入click(),可能会抛出一个Image not found错误信息。

答案 2 :(得分:0)

我知道已经有一段时间了,但是最近我遇到了类似的问题。 找到了图片,但单击不起作用。

我还在Windows 10 x86_64上工作。 解决方案只是以管理员身份执行程序。 不知道为什么,但是现在可以了。

对于某些模式,我还必须使用双击而不是简单的单击。