java.awt.Robotによるモダン(?)な画面キャプチャ

画面キャプチャの基本

テストケースを打鍵しながら画面をキャプチャするのは
TakesScreenshot#getScreenshotAs(OutputType.FILE)で取れるのは
いろいろ調べて理解しました。

How do you capture "Popup Alert Window"

ですが、アラートのポップアップが出ているところを
バチっとキャプチャしたいときには使えないみたいでした。
どうすればいいのか悩んでgoogleを彷徨い歩きました。

Robotを使ってキャプっちゃえ!

彷徨い歩いた結果たどり着いたのが「java.awt.Robot」でした。
どうもこれを使うとキャプチャ以外にもいろいろできるみたいですね・・・。

/**
 * Robotによる画面キャプチャ
 * 
 * @param path 出力先ファイルパス
 */
public static void alertCaptuer(String path) {

  // 取得する画面エリア 
  Rectangle screenSize = new Rectangle(0, 0, 2560, 800);

  try {

    // java.awt.Robotの生成
    Robot robot = new Robot();
    // イメージを所定の場所に出力
    ImageIO.write(robot.createScreenCapture(screenSize), "png", new File(path));

  } catch (IOException e) {
    e.printStackTrace();  
  } catch (AWTException e) {
    e.printStackTrace();
}

最後に

javaって本当に広い・・・そして深い・・・。
なんだか少しずつですが楽しくなってきましたヽ(´ー`)ノ