1

如何使用 截屏HtmlUnitDriver?我发现我可以在使用时捕获FirefoxDriver但我不想使用 Firefox。所以,请让我知道如何使用HtmlUnitDriver.

我用谷歌搜索,但我发现没有一个解决方案对我有用。请帮忙!

4

2 回答 2

2

Flyingsaucer 是一个 java 库,可让您无头截取网页截图(无需在浏览器中打开页面)。以下代码将捕获整个页面的屏幕截图,并将其调整为名为“screenshot.png”的图像。数字 1024 指定输出屏幕截图的宽度。在这里找到库http://mvnrepository.com/artifact/org.xhtmlrenderer

import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import org.xhtmlrenderer.simple.Graphics2DRenderer;

public class RenderPage {

    public static void main(String[] args) throws Exception {
        try {
             String address = "http://www.w3.org";
             BufferedImage buff = Graphics2DRenderer.renderToImageAutoSize(address, 1024);
             ImageIO.write(buff, "png", new File("screenshot.png"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

您也可以使用方法 Graphics2DRenderer.renderToImage(address,1024,1024); 定义您自己的屏幕截图大小。

您会发现屏幕截图看起来就像是在手机上呈现的一样。我不知道为什么会这样,但我猜你可以在某处更改 Flyingsaucer 的浏览器版本,以模拟不同浏览器上的页面。

还有一件事是这段代码不会截图 www.google.com 但显然这种类型的错误可以通过使用名为 JTidy 的库整理页面源来解决。

于 2015-11-21T08:05:17.457 回答
-1

HtmlUnitDriver 是无 GUI 的。见:这里

也许您可以使用以下内容:

BufferedImage image = new Robot().createScreenCapture(newRectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "png", new File("/screenshot.png"));

资源

于 2015-02-16T03:10:57.513 回答