Selenium - 从两个显示器捕获屏幕截图

时间:2016-08-04 20:41:36

标签: java selenium selenium-webdriver testng selenium-chromedriver

我有一台带两台显示器的电脑,我想拍摄两台显示器的屏幕截图。我使用下面的代码,它只捕获第一台显示器的屏幕截图,但不捕获第二台显示器。

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个监视器的屏幕截图或存在浏览器的活动屏幕截图。

任何帮助将不胜感激!

1 个答案:

答案 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*/ }

根据我的经验,这只是浏览器的屏幕截图,但这可能因驱动程序而异。

编辑添加 driverWebDriver的实例。如果这就是你正在做的事情,你的问题有点不清楚。如果不是,你可以澄清你的硒使用情况,我会尽力帮助。