我在屏幕上有2个完全相同的图像(图案,颜色,大小,所有内容都相同),在这种情况下,如何单击图像1 ?
每当我使用s.click()
函数时,Sikuli都会尝试单击图片1 有时甚至单击图片2 。
我尝试了Pattern
和exists
,但它们也无法按预期工作。
Pattern imagePatternPath = new Pattern("Image.png").exact();
screen.click(imagePatternPath);
我希望单击图像1 ,但实际输出是有时它会单击图像1 ,有时还会单击图像2 。 / p>
答案 0 :(得分:0)
如果屏幕上有两种绝对相似的图案,则Sikuli无法在没有任何帮助的情况下区分它们。您几乎没有办法解决此问题。
屏幕上的位置
如果图案出现在屏幕上的已知区域中,则可以将搜索范围限制在预期区域,从而避免选择错误的图案。
按距离搜索
如果您有其他任何对象仅出现在要尝试定位的一种模式旁边,而没有出现在另一种模式下,则可以将它们用作枢轴。
看看Sikuli代码,尤其是这里的Region
类。它提供了各种选项来修改找到的模式周围的搜索区域。例如:
public Region grow(int range) {
return grow(range, range);
}
答案 1 :(得分:0)
下次尝试查看补丁说明时,它们会很有帮助。但是这是我会尝试的:
result = findAll("Image.png")
这将返回一个列表,您可以循环访问该列表以单击您想要的项目,在这种情况下,您将单击第一个项目。