在Sikuli中调用similar()时出错

时间:2013-05-13 07:00:49

标签: user-interface automation sikuli

l = find("Start_menu.png").similar(0.5).anyColor()
click(l)

以上是我的代码的摘录。 “Start_menu.png”是指Windows开始菜单的图像。执行此操作时出现以下错误:

File "C:\Users\VPRAVE~1.TSI\AppData\Local\Temp\sikuli-tmp8636618870597770744.py", line 1, in 
 l = find("1368426219510.png").similar(0.5).anyColor().anySize()
AttributeError: 'org.sikuli.script.Match' object has no attribute 'similar'

有人可以帮我解决这个问题吗?有人可以告诉我如何使用anyColor()anySize()吗?

1 个答案:

答案 0 :(得分:2)

find尝试在调用时找到一些东西。所以你的代码在散文中说的是“找到一些看起来像'Start_menu'的东西,然后让你发现的东西看起来相似,然后再做任何颜色”

这是错误的 - 您无法在事后设置相似性阈值。相反,请按照Sikuli docs中的说明调用它。

相反,说

l = find(Pattern("Start_menu.png").similar(0.5))

这是垂直排列的相同代码:

pattern = Pattern("Start_menu.png")
pattern.similar(0.5)
l = find(pattern)

另一个问题是您对anyColor()函数的引用,该函数不存在。我看到您尝试运行的代码来自“Sikuli:使用GUI屏幕截图进行搜索和自动化”(从Sikuli docs链接),但此函数(以及该文章中使用的语法)不存在在任何现存版本的Sikuli。您可以在Sikuli launchpad page上看到针对该功能的打开功能请求。

但现在这对你没有帮助。我不知道可以anyColor的另一个视觉自动化软件包。如果你想将这个功能用于某些事情,我建议你提出一个新的问题来描述你想要解决的问题,并且有人可能会为这个具体案例提出解决方案。