public class MyFirstSikuliTest {
public static void main(String[] args) {
App.open("C:\\Program Files\\Mozilla Firefox\\firefox.exe");
Screen s = new Screen();
try{
s.click("How do I take the screenshot and pass the path of the PNG here?", 0);
s.wait("How do I take the screenshot and pass the path of the PNG here?");
s.type(null, "WEBSITE NAME", 0);
}
catch(FindFailed e){
e.printStackTrace();
}
}
}
如何截取屏幕截图并将PNG的路径传递给click方法和wait方法?请帮助。
PS:我想打开firefox浏览器,点击地址栏,输入网站名称,然后点击回车。谢谢!
答案 0 :(得分:3)
正如here所述,只需提供与屏幕截图对应的 PNG 图片的路径。
可以使用任何屏幕截图实用程序创建该屏幕截图。我曾经使用 sikuli IDE 编写脚本,它提供了一种创建屏幕截图的简单方法。
希望它有所帮助。
答案 1 :(得分:2)
public static void takePictureOfError(String Name) throws IOException,
AWTException {
new File("Errors").mkdir();
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRect);
utilsLogger.info(ImageIO.write(image, "png", new File("//"
+ Name)));
}
我希望这种方法有用,它对我有用;)
答案 2 :(得分:1)
几行描述:
第3行:我打开一个新标签,以便地址栏看起来总是一样(条形图中的不同网址可能会注册为不同的图像)。这是Sikuli的主要编程要求,忽略了显示器的区域,这些区域可能会随着程序的使用而略有变化。您还可以减少图像的百分比比较。
第4行:Sikuli找到地址栏图片(图片来自Windows中的FF)。您可以调整Sikuli单击的图像上的位置,或者确保图像足够大,使得中间点击地址栏位置(即不是Sikuli单击地球图标)。我在第1行中定义的url文本被输入到选定的地址栏中。 url中的\ n是回车键。
答案 3 :(得分:0)
<强> Sikuli 强>
new MockUp<ResultsAPIWrapper>() {
@Mock
void $clinit() {
//disable static initialization
}
@Mock
public String load() {
return "done";
}
};
<强> sikulix 强>
public static void screenClipUser() throws IOException{
org.sikuli.script.Screen screen = Screen.getPrimaryScreen();
org.sikuli.script.Region region = screen.selectRegion("Select Area to capture as Image");
ScreenImage clip = region.getLastScreenImage(); // screen.userCapture();
ScreenImage printScreen = region.getScreen().capture();
javax.imageio.ImageIO.write(clip.getImage(), "PNG", new File("D:\\SikuliImages\\Clip.png"));
ImageIO.write(printScreen.getImage(), "PNG", new File("D:\\SikuliImages\\PrintScreen.png"));
screenCaptureRegion(screen);
}
public static void screenCaptureRegion(Screen screen) throws IOException{
java.awt.Point point = MouseInfo.getPointerInfo().getLocation();
System.out.println("Mouse Location Co-Ordinates Previous Selected : " + point);
//ScreenImage capturedRegion = screen.capture(point.x, point.y, 200, 200);
ScreenImage capturedRegion = screen.capture(clip.x, clip.y, clip.w, clip.h);
ImageIO.write(capturedRegion.getImage(), "PNG", new File("D:\\SikuliImages\\CapturedRegion.png"));
}