Sikuli点击。 (ScreenCaptureImage)在java中

时间:2014-02-11 14:20:09

标签: java sikuli

我是Sikuli的新手,我想

1. click windows button, and 
2. type "Helloworld"  
3. press Enter. 

我编写了这个并在Sikuli IDE中成功运作

click("1391583846712.png")
type("helloWorld")
wait(2)
type(Key.ENTER)

我试图把它转移到Java, 从sikuli javadocs我看到以下代码,但它不适用于java sikuli-api-1.0.2和最新版本

import org.sikuli.script.*;

public class TestSikuli {

    public static void main(String[] args) {
            Screen s = new Screen();
            try{
                    s.click("imgs/win-start.png", 0);
                    s.wait("imgs/spotlight-input.png");
                    s.type(null, "hello world\n", 0);
            }
            catch(FindFailed e){
                    e.printStackTrace();
            }

    }

}

它告诉Screen是一个界面。请告诉我如何使用最新的java sikuli-api。请注意我对Sikuli很新。任何建议将受到高度赞赏。另请指出正确的sikuli java for begineers

4 个答案:

答案 0 :(得分:0)

new org.sikuli.api.DesktopScreenRegion()在基本全屏幕上创建ScreenRegion,您可以点击并查找图片

查找新API的最佳方法是查看the sources。幸运的是,没有很多课程可以理解。

答案 1 :(得分:0)

以下Sikuli Java代码应该可以工作:

import org.sikuli.script.*;
public class HelloWorld {
    public static void main(String[] args){
        Screen screen = new Screen();
        try{


screen.click("D:\\Sikuli\\WinStartButton.png");

//" WinStartButton.png"必须存在于您正在使用的所需位置
// OR,而不是上面的行,您可以使用以下内容:

screen.type(Key.WIN);

        }
        catch(FindFailed e){
            e.getStackTrace();
        }
        screen.type("Hello World");
        screen.type(Key.ENTER);
    }
}

答案 2 :(得分:0)

尝试在代码中使用图像定位器,

import org.sikuli.script.*;

import org.sikuli.basics.ImageLocator;

public class AuthLogin {
public static void main(String[] args) {
        Screen s = new Screen();
ImageLocator.setBundlePath("path to img directory");
        try{
                s.click("win-start.png", 0);
                s.wait("spotlight-input.png");
                s.type(null, "hello world\n", 0);
        }
        catch(FindFailed e){
                e.printStackTrace();
        }
 }

答案 3 :(得分:0)

我认为您不应该在代码中直接使用绝对图像路径。 我将创建一个包含绝对路径作为静态常量的类。

示例:

而不是:

screen.click( "D:\\Sikuli\\WinStartButton.png");

您可以这样:

public static final String IMAGE = "D:\\Sikuli\\WinStartButton.png";

screen.click(IMAGE);