[英]Why won't sikuli script click on the image?
我完全不熟悉sikuli,并尝试对图像截图进行简单的单击,这已成为我的火箭科学。
仅供参考-我拍摄了Google徽标的屏幕截图,并将其保存在我的计算机上。 但是,如果我获取实际的Google徽标图片网址,则该脚本有效。
这是使用图像截图的正确方法吗?
public class TestGenericButton {
public static void main(String[] args) throws MalformedURLException {
// Open the main page of Google Code in the default web browser
browse(new URL("http://code.google.com"));
// Create a screen region object that corresponds to the default monitor in full screen
ScreenRegion s = new DesktopScreenRegion();
// Specify an image as the target to find on the screen
//URL imageURL = new URL("http://code.google.com/images/code_logo.gif");
URL imageURL = new URL("img\\google.gif");
Target imageTarget = new ImageTarget(imageURL);
// Wait for the target to become visible on the screen for at most 5 seconds
// Once the target is visible, it returns a screen region object corresponding
// to the region occupied by this target
ScreenRegion r = s.wait(imageTarget,5000);
// Display "Hello World" next to the found target for 3 seconds
Canvas canvas = new DesktopCanvas();
canvas.addLabel(r, "Hello World").display(3);
// Click the center of the found target
Mouse mouse = new DesktopMouse();
mouse.rightClick(r.getCenter());
}
}
不,这不是创建ImageTarget的方法。 您要使用的文件中有图像,因此您需要传递File
而不是URL
。
根据文档 ,而不是
URL imageURL = new URL("img\\google.gif");
Target imageTarget = new ImageTarget(imageURL);
做
File imageFile = new File("img\\google.gif"); // assumes your working directory is set right...
Target imageTarget = new ImageTarget(imageFile);
提供imageURL,此方法应执行单击部分:)
private void click(String image) throws FindFailed{
Screen screen = new Screen();
Pattern pattern = new Pattern(image).similar((float) 0.7);
if(screen.find(pattern)!=null){
screen.mouseMove(pattern);
screen.click(pattern);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.