Sikuli 产生 unreliable/random 个结果
Sikuli produces unreliable/random results
在我正在自动化的应用程序中,我有两个按钮:登录和注册。
它们都有不同的图标。有时(我的意思是完全随机,没有行为模式)我点击登录按钮的脚本会点击注册按钮。这更加令人困惑,因为我的图像存储库中不存在注册按钮。
我是这样点击的:
try {
s.click("/imagerepo/config/loginbutton.png");
} catch (FindFailed e) {
e.printStackTrace();
}
有时会点击登录按钮。有时不是。
我真的很困惑这里发生了什么。是否有任何方法可以配置 Sikuli 找到图像的精确度?如何提高脚本的可靠性?
总是,当 Sikuli 的行为不清楚时,您必须调试脚本并了解与您正在发生的事情相比真正发生的事情。在某些情况下,您的相似系数太低,可以选择其他模式而不是您想要的模式。尝试按照以下步骤调试您的 Sikuli 脚本。
使用highlight()
方法
所以在你点击之前,试着做这样的事情:
s.find("/imagerepo/config/loginbutton.png").highlight(1); //1 sec highlight duration
这将在屏幕上定位的元素周围显示一个红色矩形框。
使用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.
的更多信息
在我正在自动化的应用程序中,我有两个按钮:登录和注册。
它们都有不同的图标。有时(我的意思是完全随机,没有行为模式)我点击登录按钮的脚本会点击注册按钮。这更加令人困惑,因为我的图像存储库中不存在注册按钮。
我是这样点击的:
try {
s.click("/imagerepo/config/loginbutton.png");
} catch (FindFailed e) {
e.printStackTrace();
}
有时会点击登录按钮。有时不是。
我真的很困惑这里发生了什么。是否有任何方法可以配置 Sikuli 找到图像的精确度?如何提高脚本的可靠性?
总是,当 Sikuli 的行为不清楚时,您必须调试脚本并了解与您正在发生的事情相比真正发生的事情。在某些情况下,您的相似系数太低,可以选择其他模式而不是您想要的模式。尝试按照以下步骤调试您的 Sikuli 脚本。
使用
highlight()
方法所以在你点击之前,试着做这样的事情:
s.find("/imagerepo/config/loginbutton.png").highlight(1); //1 sec highlight duration
这将在屏幕上定位的元素周围显示一个红色矩形框。
使用
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. 的更多信息