【问题标题】:Sikuli produces unreliable/random resultsSikuli 产生不可靠/随机的结果
【发布时间】:2015-12-15 12:28:43
【问题描述】:

在我正在自动化的应用程序中,我有两个按钮:登录和注册。

它们都有不同的图标。有时(我的意思是完全随机,没有行为模式)我单击登录按钮的脚本将单击注册按钮。这更加令人困惑,因为我的图像存储库中不存在注册按钮。

我是这样点击它的:

try {
        s.click("/imagerepo/config/loginbutton.png");
    } catch (FindFailed e) {
        e.printStackTrace();
    }

有时它会点击登录按钮。有时不会。

我真的很困惑这里发生了什么。是否有任何方法可以配置图像必须有多精确才能让 Sikuli 找到它?如何提高脚本的可靠性?

【问题讨论】:

    标签: java automation sikuli


    【解决方案1】:

    总是,当 Sikuli 的行为不清楚时,您必须调试您的脚本并了解与您正在发生的事情相比真正发生的事情。在某些情况下,您的相似系数太低,可以选择其他模式来代替您想要的模式。尝试按照以下步骤调试您的 Sikuli 脚本。

    1. 使用highlight()方法

      因此,在您点击之前,请尝试执行以下操作:

      s.find("/imagerepo/config/loginbutton.png").highlight(1); //1 sec highlight duration

      这将在屏幕上定位的元素周围显示一个矩形红框。

    2. 使用highlight() 时,请查看控制台。它应该打印出 Match 对象的详细信息。它看起来像这样:

      [log] highlight M[12,9 38x38]@S(0)[0,0 1280x1024] S:1.00 Center:31,28 for 1.0 seconds

      注意S 参数,在这种情况下为1.00。这就是你的相似系数。通常,高于 0.95 的值意味着您的模式与屏幕上的某些元素之间存在 95% 的匹配。但是,如果此值较低,则可能会出现一些奇怪的行为,这些行为可能会导致匹配不正确的元素。你可以找到更多关于匹配对象here的信息。

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 2012-05-29
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 2014-01-02
      • 2012-02-09
      • 2018-06-04
      相关资源
      最近更新 更多