2016-07-15 92 views
1

我是Sikuli API的新手,我使用的是Sikuli-java-jar文件。我想用屏幕和图案类成功点击桌面元素。Sikuli:我无法点击PopUp窗口中存在的元素

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

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

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);    
    } 
+0

任何更新它请 –

+0

你得到什么错误? –

+0

我没有收到任何错误,只是没有点击该图片 –

回答

1

我认为原因是,默认情况下相似(0.7)是不够的小按钮和文本。

Sikuli公开课设置 其中主持人public static double MinSimilarity = 0.7;

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

有时甚至0.9不足以识别小文本,然后尝试0.95,它通常有助于查明甚至最小的文本。

+0

谢谢!我会看看它。与Focus关注窗口无关,然后尝试单击。 –

1

除了RPWheeler的答案,如果有正确的旁边会出现同样的方式时候你的目标图像的东西,你也可以是一个更大的屏幕剪辑,然后告诉Sikuli这是更大的图像的一部分点击。

例如:如果您的“下一步”按钮是一行按钮的一部分,请将屏幕剪辑包含在整行中。然后,在IDE中,双击图像,然后转到“目标偏移”选项卡。在这里,你会看到你的图像的一个例子,并且你点击你想要Sikuli点击的那部分图像。 - 默认值始终是矩形的中心,但您可以使用目标偏移量更改它。

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

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

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

1

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

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