[英]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.