1

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

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

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

在此处输入图像描述 在此处输入图像描述

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);               
    }
4

3 回答 3

1

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

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

于 2016-07-21T10:57:17.757 回答
1

除了 RPWheeler 的回答之外,如果您的目标图像旁边有一些东西每次都会以相同的方式出现,您还可以拍摄一个更大的屏幕剪辑,然后告诉 Sikuli 要单击该更大图像的哪个部分。

例如:如果您的“下一步”按钮是一排按钮的一部分,请使用屏幕剪辑以包含整行。然后,在 IDE 中,双击图像,然后转到“目标偏移”选项卡。在这里,您将看到一个图像示例,然后单击您希望 Sikuli 单击的图像部分。-- 默认总是矩形的中心,但是你可以用目标偏移量来改变它。

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

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

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

于 2016-07-19T13:09:47.163 回答
1

我认为原因是默认的相似度(0.7)对于小按钮和文本来说是不够的。

Sikuli 有 public class Settings ,它承载public static double MinSimilarity = 0.7;

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

有时即使 0.9 也不足以识别小文本,那么试试 0.95 ,它通常有助于精确定位最小的文本。

于 2016-07-18T22:25:08.233 回答