【问题标题】:Sikuli click is not effect斯库里点击不生效
【发布时间】:2017-03-05 07:47:04
【问题描述】:

我正在使用 SikulixIDE 1.1.0 编写玩 Yugioh 游戏的脚本(在 Windows 10 x64 上运行)。 查看主屏幕:

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

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

但所有都不起作用,也没有。

【问题讨论】:

  • 你找到原因了吗
  • @bipin:还没有,但我使用了 Eugene S 在下面回答的解决方法

标签: automation sikuli


【解决方案1】:

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

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

    if (nextScreen is available):
        break

    sleep(time)

【讨论】:

    【解决方案2】:

    我知道这已经有一段时间了,但我最近遇到了类似的问题。 图片已找到,但点击无效。

    我也在使用 Windows 10 x86_64。 解决方案只是以管理员身份执行程序。 不知道为什么,但现在它正在工作..

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

    【讨论】:

    • 您的回答将我引向正确的道路。我正在使用 powershell 运行 Sikuli 脚本。我必须以管理员身份运行它们,Sikuli 开始点击。
    【解决方案3】:

    除了 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:如果存在的话别忘了把pattern放在里面然后点击,因为如果你不把它放在click()里面,可能会抛出一个Image not found的错误信息。

    【讨论】:

    • 感谢您的信息。但在我的情况下,找到了图像,只是 click() 命令没有效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多