在远程机器上使用robot.createScreenCapture获取黑色图像

当rdp会话closures时,我有一个常见的问题获取黑屏截图。 没有find任何有关这个问题的工作答案。 我有java-seleniumtesting。 码:

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运行testing,并closures rdp会话时,会显示黑屏截图。 如果会话是活动的 – 我得到正常的截图。 但是当会话closures时,我需要做出正常的屏幕截图。

我怎样才能做到这一点? 有任何想法吗?

VisualCron和selenium.captureScreenshot()不适合我。

我一直在寻找替代使用VNC服务器,但我找不到它。 所以我的答案是“使用VNC”。 就个人而言,我更喜欢UltraVNC

安装时,使用uvnc会话启动您的硒Jenkins奴隶,并断开连接。

AWT机器人将现在工作。