【问题标题】:FirefoxDriver takes screenshots of different sizeFirefoxDriver 截取不同大小的屏幕截图
【发布时间】:2015-12-28 09:38:32
【问题描述】:

我制作了一个 java 应用程序,它将从我们的暂存环境中截取的屏幕截图与生产环境中的屏幕截图进行比较。 由于屏幕截图大小不同,应用程序失败。

如何定义屏幕截图大小? 我正在使用以下代码生成屏幕截图。

    final WebDriver driver = new FirefoxDriver();

    try {
        driver.manage().window().setSize(new Dimension(1024, 768));
        driver.get(link);
        File outputFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    ....

【问题讨论】:

  • 不适用于OutputType.FILE:[Javadoc] "TakesScreenshot 会根据浏览器尽最大努力优先顺序返回以下内容: 1) 整个页面 2) 当前窗口 3) 当前帧的可见部分 4) 包含浏览器的整个显示的屏幕截图。”还有一个OutputType.BYTES。但是通过使用原始字节来拟合屏幕截图是我不想做的任务。

标签: java selenium-firefoxdriver firefox-driver


【解决方案1】:

正如 cmets 中提到的 @Würgspaß,您可以使用 OutputType.BYTE 执行此操作。这是一个例子:

byte[] bytes = driver.getScreenshotAs(OutputType.BYTES);
BufferedImage full = ImageIO.read(new ByteArrayInputStream(bytes));
full.getSubimage(0, 0, 1200, 800);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2012-03-10
    相关资源
    最近更新 更多