Я использую робота для создания скриншота всей страницы. Проблема, с которой я сталкиваюсь при создании полного снимка экрана, заключается в том, что он делает снимок экрана моей системы, а не приложения, в котором я выполняю.
Вот мой код создания снимка экрана.
Код: Выделить всё
protected void getScreenshot(String path ) {
try {
byte[] screenshot = screenshotService.takeScreenshot();
screenshotService.saveBytesArrayToFile(path, screenshot);
} catch (Exception e) {
log.debug("UnhandledAlertException occurred during screenshot capture, using Robot to take the screenshot");
RobotService robotService = new RobotService();
BufferedImage screenshot = robotService.takeScreenShot();
screenshotService.saveBufferedImageToFile(path, screenshot);
} catch (Throwable e) {
log.error("Exception", e.getMessage(), e);
}
}
Код: Выделить всё
public byte[] takeScreenshot() throws UnhandledAlertException {
RemoteWebDriver driver = DriverManager.getRemoteWebDriver();
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
Код: Выделить всё
public BufferedImage takeScreenShot() {
try {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
return new Robot().createScreenCapture(screenRect);
} catch (Exception e) {
return null;
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... texception