簡體   English   中英

拍攝sikuli中特定區域的屏幕快照以獲取Eclipse圖形用戶界面

[英]take screen shot of a specific area in sikuli for eclipse gui

我正在嘗試運行測試執行時拍攝屏幕快照。 我使用sikuli java使用以下代碼:

 Screen screen = new Screen();
 ImageIO.write(screen.capture().getImage(), "png", new File(file-location+"1.png"));

我使用的另一種方法是java awt:

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Dimension screenSize = toolkit.getScreenSize();
    Rectangle screenRect = new Rectangle(screenSize);
    Robot robot = new Robot();
    BufferedImage image5 = robot.createScreenCapture(screenRect);
    ImageIO.write((RenderedImage) image5, "png", new File(AppConstant.IMAGE_DIR+"1.png"));

但是問題是,它正在使用Ubuntu菜單欄拍攝整個屏幕的屏幕截圖。 我想要的只是拍攝我的月食窗口(特定區域)的屏幕截圖。

一種實現方法是使用App類。 因此,如果您像這樣啟動Eclipse流程:

// You might need to provide full path here
App app = App.open("eclipse.exe");

然后,您可以使用以app區域為參數的capture方法。 可以通過window()方法獲取app區域。 所以:

App app = App.open("eclipse.exe");
ImageIO.write(screen.capture(app.window()).getImage(), "png", new File("1.png")); 

您可以使用Sikuli App Class做到這一點。 例如。 如果應用在運行測試時處於關注狀態,則可以使用以下方法:

Region appRegion = App.focusedWindow();
Screen screen = new Screen();
 ImageIO.write(screen.capture(appRegion).getImage(), "png", new File(file-location+"1.png"));

這樣,僅根據您的要求捕獲應用程序窗口,並且由於您現在擁有一個區域,因此您可以操縱它來增大/減小捕獲的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM