我在rdp会话关闭时获取黑屏幕截图时遇到了常见问题。 没有为这个问题找到任何可行的答案。 我有java-selenium测试。 代码:
private void screenShot() {
try {
String newFileNamePath;
File directory = new File (".");
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss");
Date date = new Date();
newFileNamePath = directory.getCanonicalPath() + "\\test-output\\" + "logs\\" + "screenshot_" + dateFormat.format(date) + ".png";
System.out.println(newFileNamePath);
//Capture the screen shot of the area of the screen defined by the rectangle
Robot robot = new Robot();
BufferedImage bi=robot.createScreenCapture(new Rectangle(1920,1080));
ImageIO.write(bi, "png", new File(newFileNamePath));
Reporter.log(newFileNamePath);
}
catch (AWTException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
当我在远程服务器(Windows Server 2008 R2)上通过Jenkins运行测试并且rdp-session 关闭时,我获得了黑屏幕截图。 如果会话处于活动状态 - 我会获得正常的屏幕截图。 但是我需要在会话结束时制作正常的屏幕截图。
我该怎么做? 有任何想法吗?
VisualCron和selenium.captureScreenshot()并不适合我。
答案 0 :(得分:0)
我一直在寻找使用VNC服务器的替代方案,但我无法找到它。所以我的回答是"使用VNC"。就个人而言,我更喜欢UltraVNC。
安装后,使用uvnc会话启动selenium Jenkins slave并断开连接。
AWT机器人现在可以使用了。