📷
Selenium 4でページ全体のスクリーンショットを取得する(Java/Firefox)
前回
という記事を書きました。
今回は同じくページ全体のスクリーンショットをFirefoxでやってみたいと思います。と言ってもChromeの時より簡単です。
Selenium 4-alpha-2 and GeckoDriver 0.24.0
GeckoDriverにはバージョン0.24.0からページ全体のスクリーンショットを取得するためのエンドポイントが追加されています。そして、2019年7月1日リリースのSelenium 4.0.0-alpha-2にはこのエンドポイントを呼び出すメソッドである getFullPageScreenshotAs
が追加されています。したがって今回はこのメソッドを呼ぶだけで目的が達成できます👍
コード
public void testFullPageScreenshot() throws IOException {
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://qiita.com/");
Path screenshot = driver.getFullPageScreenshotAs(OutputType.FILE).toPath();
Files.copy(screenshot, Paths.get("screenshot.png"));
}
実行結果
Firefoxでもページ全体のスクリーンショットが取得できていますね🎉
課題
横スクロールのページは取得できません。[1]
また、Chrome同様インフィニットスクロールのページでは取得タイミングによってスクリーンショットに含まれる範囲が変わります。他にスクロールイベントをきっかけに画像が変わるようなページもきれいに取得できない可能性があります。
以上です。この情報が皆さんのスクリーンショットライフ(?)の一助となれば幸いです。
Discussion