を使用してスクリーンショットをキャプチャするにはどうすればよいHtmlUnitDriver
ですか? 使用するとキャプチャできることがわかりましたが、FirefoxDriver
Firefox を使用したくありません。そこで、 を使って画像をキャプチャする方法を教えてくださいHtmlUnitDriver
。
私はグーグルで検索しましたが、見つけた解決策はどれもうまくいきませんでした。助けてください!
を使用してスクリーンショットをキャプチャするにはどうすればよいHtmlUnitDriver
ですか? 使用するとキャプチャできることがわかりましたが、FirefoxDriver
Firefox を使用したくありません。そこで、 を使って画像をキャプチャする方法を教えてくださいHtmlUnitDriver
。
私はグーグルで検索しましたが、見つけた解決策はどれもうまくいきませんでした。助けてください!
Flyingsaucer は、(ブラウザでページを開かずに) ヘッドレスで Web ページのスクリーンショットを撮ることができる 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 のブラウザー バージョンをどこかで変更して、別のブラウザーでページをエミュレートできるのではないかと推測しています。
もう 1 つ、このコードは www.google.com のスクリーンショットを作成しませんが、このタイプのエラーは、JTidy というライブラリを使用してページ ソースを整理することで解決できるようです。