Sikuli:我无法点击PopUp窗口中的元素

时间:2016-07-15 13:45:14

标签: sikuli sikuli-script

我是Sikuli API的新手,我使用的是Sikuli-java-jar文件。我想使用屏幕和模式类成功点击桌面元素。

所以我试图创建一个自动化脚本来安装软件。 我能够成功启动安装程序,但无法单击弹出窗口中的“下一步”按钮。

我没有收到任何错误,只是单击图像失败。

enter image description here enter image description here

appInstaller("E:\\Sikulimages\\tc.png");
        appInstallers("E:\\Sikulimages\\next.png");


public static void appInstaller(String path) throws FindFailed{
        s=new Screen();
        img=new Pattern(path);      
        s.exists(path);
        s.wait(img,2000);
        s.doubleClick(img);
    }

    public static void appInstallers(String path) throws FindFailed, InterruptedException{

        s=new Screen();
        img=new Pattern(path);      
        s.click(img);               
    }

3 个答案:

答案 0 :(得分:1)

我认为原因是默认的相似度(0.7)不足以用于小按钮和文本。

Sikuli有公共课程设置, 托管 public static double MinSimilarity = 0.7;

对于大多数图像识别来说,这个值已经足够了,但是对于小文本来说却是失败的。要点击小文本,您需要提高特定模式的相似度,或者像我一样,使Settings.MinSimilarity = 0.9;

有时甚至0.9都不足以识别小文本,然后尝试0.95,这通常有助于确定最小的文本。

答案 1 :(得分:1)

除了RPWheeler的回答之外,如果您的目标图片旁边有某些内容与时间的内容相同,您还可以拍摄更大的屏幕剪辑然后告诉Sikuli是那个更大的图像的一部分点击。

例如:如果您的"下一步"按钮是一排按钮的一部分,采取屏幕剪辑包括整行。然后,在IDE中,双击图像,然后转到" Target Offset"标签。在这里,您将看到一个图像示例,然后单击希望Sikuli单击的图像部分。 - 默认值始终是矩形的中心,但您可以使用目标偏移量更改它。

你可以在像这样的代码中完成同样的事情

t = find(yourImage).targetOffset(dx,dy)
click(t)

其中dx和dy是远离矩形中心点的正像素数或负数。

答案 2 :(得分:1)

要安装应用程序,您需要管理员权限。因此,要运行任何需要管理员权限的任务,您需要以管理模式运行sikuli 。因此,右键单击runSikulixcmd.bat并选择以管理员身份运行以启动Sikuli,然后运行测试。

如果从命令提示符运行测试,请在admin命令提示符下运行它。