0

我对 sikuli 完全陌生,并尝试对图像截图进行简单的点击,这对我来说已经成为一门火箭科学。

仅供参考 - 我截取了谷歌徽标并将其保存在我的机器上。但是,如果我获取实际的 google 徽标图像 url,那么脚本就可以工作。

这是使用图像截图的正确方法吗?

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

2 回答 2

0

不,这不是创建 ImageTarget 的方法。您在要使用的文件中有一个图像,因此您需要传递 a File,而不是 a 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);
于 2013-11-11T19:18:43.533 回答
0

提供 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); 
    }
    }
于 2014-04-04T10:08:45.933 回答