0

我在屏幕上有 2 个完全相同的图像(图案、颜色、大小,一切都相同),在这种情况下,我如何单击图像 1

每当我使用该s.click()功能时,Sikuli 有时会尝试单击Image 1,有时会尝试单击Image 2

我已经尝试过Patternexists但它们也没有按预期工作。

Pattern imagePatternPath = new Pattern("Image.png").exact();
        screen.click(imagePatternPath);

我希望单击Image 1,但实际输出有时会单击Image 1,有时会单击Image 2

4

2 回答 2

0

下次试试看补丁说明,它们很有帮助。但这是我会尝试的:

 result = findAll("Image.png")

这将返回一个列表,您可以遍历该列表以单击您要查看的项目,因此在这种情况下,您将单击第一个项目。

于 2019-08-12T18:35:45.883 回答
0

如果屏幕上出现了两个绝对相似的图案,没有一些帮助,斯库里是无法区分的。您几乎没有办法解决这个问题。

屏幕上的位置

如果图案出现在屏幕上的已知区域,您可以将搜索限制在预期区域,从而避免选择错误的图案。

按邻近搜索

如果您有任何其他对象仅出现在您尝试定位的模式之一旁边而不是另一个旁边,您可以将它们用作枢轴。

看看 Sikuli 代码,尤其是Region这里的类。它公开了各种选项来修改围绕找到的模式的搜索区域。例如:

public Region grow(int range) {
    return grow(range, range);
  }
于 2019-08-01T13:48:50.927 回答