我有一台带两台显示器的电脑,我想拍摄两台显示器的屏幕截图。我使用下面的代码,它只捕获第一台显示器的屏幕截图,但不捕获第二台显示器。
public void getScreenshotThroughRobot(String filename) throws IOException, AWTException {
Robot robot = new Robot();
String format = "jpg";
filename = filename + "-FullScreenshot." + format;
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
ImageIO.write(screenFullImage, format, new File(filename));
}
如果我的浏览器在第一台显示器中打开,则屏幕截图很好,但如果它在第二个显示器打开,那么它仅从第一台显示器拍摄屏幕截图。
它必须捕获来自2个监视器的屏幕截图或存在浏览器的活动屏幕截图。
任何帮助将不胜感激!
答案 0 :(得分:0)
尝试这样的事情:
if (driver instanceof TakesScreenshot) {
TakesScreenshot ts = (TakesScreenshot) driver;
File screenshotFile = ts.getScreenshotAs(OutputType.FILE);
//feel free to move or rename the file as you see fit.
}else{ /* unsupported*/ }
根据我的经验,这只是浏览器的屏幕截图,但这可能因驱动程序而异。
编辑添加 driver
是WebDriver
的实例。如果这就是你正在做的事情,你的问题有点不清楚。如果不是,你可以澄清你的硒使用情况,我会尽力帮助。