【问题标题】:Selenium - To capture screen shots from two monitorsSelenium - 从两台显示器捕获屏幕截图
【发布时间】:2016-12-11 03:36:49
【问题描述】:

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

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

任何帮助将不胜感激!

【问题讨论】:

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


    【解决方案1】:

    试试这样的:

    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 的一个实例。如果这就是你正在做的事情,你的问题有点不清楚。如果不是,您可以澄清您的硒使用情况,我会尽力提供帮助。

    【讨论】:

    • 我已经尝试过了,更糟糕的是,我得到了一个空白屏幕截图。
    • 嗯,建议你摆弄上面的方法。似乎是更香草的选择,对我来说很有意义。你是如何运行浏览器的?如果它是无头的,你可能会遇到这个问题。
    猜你喜欢
    • 2011-10-13
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2020-10-26
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多