2

将 Sikuli(与 Selenium 一起)视为自动化我们 UI 测试中更多视觉元素的一种可能性,特别是在未应用预期品牌时可能会出现的问题。

在我的测试中,我在紫色导航栏上有一个白色导航图标图像。我截取了坐在它的紫色背景上的白色图标的屏幕截图,它被用作我在 Sikuli 测试课程中的模式。如果我随后更改我的网络应用程序中的 CSS,使导航栏为红色,我希望测试失败。

不幸的是,背景颜色的变化被忽略了,无论如何都点击了图标。如果我将模式的相似度值设置为 1f(即完全匹配),则不会单击该图标。但是,如果我将导航栏颜色更改为正确的紫色,它也不会单击图标,因此它与我用于模式的图标屏幕截图相匹配。

无论导航栏颜色如何,从 0 到 0.9 的任何“相似”参数值都可以让测试再次通过。

这是对Sikuli能力的限制还是我错过了什么?

编辑:

因此,我发现THIS ANSWER to a similar question 并提示我检查在尝试将红色图案上的白色图标和紫色图案上的白色图标与具有紫色品牌的网页匹配时返回的分数。两者的得分都超过 0.9,相差大约从小数点后第二位开始,因此当我将模式的“相似”属性设置为 0.9 时两者的匹配。

它促使我尝试增加屏幕截图的区域以包含更多相对于图标大小的背景。这导致紫色图案上的白色为 0.9 倍,红色图案上的白色为 0.7 倍。

所以我的结论是匹配确实考虑了背景颜色,但如果您使用的大多数屏幕截图图案是相同的颜色,那么分数的差异是微小的。

4

1 回答 1

0

你能绕过图标后面的背景直接看向它的一边吗?请原谅我缺乏编码知识,只是想帮助想出一个解决方法

exists (icon):
    if exists(whitebg): #capture a small area with just the color near the icon
        pass
    if exists(redbg):
        fail
于 2017-04-10T13:14:43.427 回答