如何使用 HtmlUnitDriver
捕获屏幕截图?我发现当我使用 FirefoxDriver
时可以捕获,但我不想使用 Firefox。因此,请让我知道如何使用 HtmlUnitDriver
捕获图像。
我用谷歌搜索,但找到的解决方案都不适合我。请帮忙!
最佳答案
Flyingsaucer 是一个 Java 库,可让您 headless 地截取网页屏幕截图(无需在浏览器中打开页面)。以下代码将捕获整个页面的屏幕截图,调整大小为名为“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 的库整理页面源代码来解决。
关于java - 使用 htmlunitdriver 捕获屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28482690/