Sikuli 产生 unreliable/random 个结果

Sikuli produces unreliable/random results

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

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

我是这样点击的:

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

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

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

总是,当 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.

  3. 的更多信息