Seleniumスクリーンショット取得方法
Seleniumスクリーンショット取得方法2024最新版ですが、実行環境はSelenium WebDriver(セレニウム ウェブドライバー)のEclipse(エクリプス)のjava(ジャバ)環境で、Chrome(クローム)ブラウザを使用して画面キャプチャを取得する初心者向け手順解説です。
Seleniumスクリーンショット実行環境
Seleniumスクリーンショット実行環境は以下で、EclipseのJava環境です。スクリーンショット取得コードの動作確認をChromeで実行していますが、EdgeやFirefoxやSafariでSelenium WebDriverを利用する方は、手順6の下に書いてあるそれぞれのブラウザのDriverにコードを変更すれば確認可能です。Safariの動作確認は私の方では行っていません。
実行環境 | バージョン |
---|---|
OS | Windows10 |
Eclipse | Version 2023-12 (4.30.0) Eclipse 実行用 JDK 21 |
Selenium WebDriver | selenium-java-4.20.0 |
Chrome | 124.0.6367.79 (64 ビット) |
Edge | 124.0.2478.51 (64 ビット) |
Firefox | 125.0.2 (64 ビット) |
Seleniumスクリーンショット取得手順
Seleniumスクリーンショット取得手順は大まかに以下の6つの手順で、Selenium WebDriver初心者が手順でつまずいて挫折しないように細かく書いており、手順5でスクリーンショット取得は完了していますが、便利だと思うので手順6でスクリーンショットのファイル名変更のコードを追加しています。
- Selenium WebDriver環境構築をEclipse Java環境でセットアップ
- スクリーンショット保存用フォルダーを作成
- スクリーンショット取得コードを記述
- Javaアプリケーションを実行
- スクリーンショット保存確認
- スクリーンショットファイル名変更
Selenium WebDriver環境構築をEclipse Java環境でセットアップ(手順1)
Selenium WebDriver環境構築をEclipse Java環境でセットアップする方法は以下のリンクを参照。
スクリーンショット保存用フォルダーを作成(手順2)
スクリーンショット(画面キャプチャ)保存用フォルダーを任意の場所に任意の名前で作成。この記事ではDドライブ直下に「screenshot」という名前でスクリーンショット保存用フォルダーを作成している。
スクリーンショット取得コードを記述(手順3)
スクリーンショット取得コードをテスト用JavaClassに記述。この記事では「example」パッケージに作成した「TestClass」クラスにスクリーンショット取得コードを記述。「スクリーンショットの保存先を指定」箇所のコードの赤アンダー部分を手順2で作成したスクリーンショット保存用フォルダーのパス(この記事ではD:/screenshot/)に変更して保存。
package example; import java.io.File; import java.io.IOException; import java.nio.file.Files; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class TestClass { public static void main(String[] args) throws IOException { // WebDriverを取得 WebDriver driver = new ChromeDriver(); // Google検索ページを開く driver.get("http://www.google.com"); //スクリーンショットを取得 File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); //スクリーンショットの保存先を指定 Files.copy(file.toPath(), new File("D:/screenshot/" + file.getName()).toPath()); } }
Javaアプリケーションを実行(手順4)
ツールバーの「実行」ボタンをクリックするか、スクリーンショット取得コードを書いたエディタ上で右クリックし、実行 > Javaアプリケーション をクリック。
スクリーンショット保存確認(手順5)
手順2で作成したスクリーンショット保存用フォルダー(この記事ではD:\screenshot)に「https://www.google.com/」のスクリーンショットが保存されていれば成功です。失敗した場合は手順3のスクリーンショット取得コードの3つの赤アンダー箇所「パッケージ名」と「クラス名」と「スクリーンショット保存用フォルダーのパス」がご自身の環境に合っているか再確認してください。
スクリーンショットのファイル名変更(手順6)
スクリーンショットをいつ取得したのかすぐわかるように、スクリーンショットのファイル名を取得日時に変更するコードを追加したバージョンのコードです。手順5でスクリーンショット保存確認が完了していれば特に不要なコードですが、便利かなと思うので必要な方はコードを追加してください。
package example; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.text.SimpleDateFormat; import java.util.Date; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class TestClass { public static void main(String[] args) throws IOException { // WebDriverを取得 WebDriver driver = new ChromeDriver(); // Google検索ページを開く driver.get("http://www.google.com"); // スクリーンショットを取得 File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); // 現在日時を取得 Date date = new Date(); // フォーマットを変換 SimpleDateFormat sdf = new SimpleDateFormat("yyyy'年'MM'月'dd'日('E')'k'時'mm'分'ss'秒'"); // 指定の場所に保存 try { Files.copy(file.toPath(), new File("D:/screenshot/" + "スクリーンショット " + sdf.format(date) + ".png").toPath()); } catch (IOException e) { e.printStackTrace(); } } }
コードの3つの赤アンダー箇所「パッケージ名」と「クラス名」と「スクリーンショット保存用フォルダーのパス」はご自身の環境に合わせてください。
CDP versionコンソールエラー
CDP versionコンソールエラーが発生した場合、Selenium WebDriverとChromeやEdgeなどChromiumベースのブラウザのCDP(Chrome DevTools Protocol)バージョンが異なっているのが原因だが、スクリーンショットは取得できているので、エラーだと焦らずスクリーンショット保存用フォルダーを確認してください。
警告: Unable to find an exact match for CDP version 124, returning the closest version; found: 123; Please update to a Selenium version that supports CDP version 124 [水 4月 24 23:57:39 JST 2024]
上記エラーは、CDPバージョン124に完全一致するものが見つからないので最も近いバージョン123を返す、CDPバージョン124をサポートするSeleniumバージョンにアップデートしてください、といった内容。
Selenium Edge driver
Selenium Edge driverを利用する場合は、importの
import org.openqa.selenium.chrome.ChromeDriver;
を
import org.openqa.selenium.edge.EdgeDriver;
に変更し、WebDriver取得の
WebDriver driver = new ChromeDriver();
を
WebDriver driver = new EdgeDriver();
に変更。
Selenium Safari driver
Selenium Safari driverを利用する場合は、importの
import org.openqa.selenium.chrome.ChromeDriver;
を
import org.openqa.selenium.safari.SafariDriver;
に変更し、WebDriver取得の
WebDriver driver = new ChromeDriver();
を
WebDriver driver = new SafariDriver();
に変更。
Selenium Firefox driver
Selenium Firefox driverを利用する場合は、importの
import org.openqa.selenium.chrome.ChromeDriver;
を
import org.openqa.selenium.firefox.FirefoxDriver;
に変更し、WebDriver取得の
WebDriver driver = new ChromeDriver();
を
WebDriver driver = new FirefoxDriver();
に変更。
Selenium書籍おすすめ
Selenium書籍おすすめは以下の3冊で、Seleniumの使い方が体系的にまとめられているので、Selenium初心者、テスト自動化初心者は一読の価値があると思います。ただ、3冊とも発売から時間が経っているので、Selenium WebDriverのバージョンやJavaバージョンが現在のバージョンと異なるため、環境構築などは参考にならない点には注意が必要です。
Selenium実践入門
ブラウザの多様化に伴いWebアプリケーションをクロスブラウザ対応にするための負荷がますます増加し、その解決の一つとしてテスト自動化のノウハウが開発現場で必要とされています。また継続的インテグレーションを実践する際にもテスト自動化がその一部として取り入れられています。本書ではWebアプリケーションのテスト、特にブラウザテストに関わる現状と問題点を整理し、これを解決する最適なプロダクトであるSeleniumを中心にWebブラウザテスト自動化への取り組み方、具体的な手順などについて解説します。
発売日 | 2016年2月2日(火) |
---|---|
単行本 | 416ページ |
定価 | 3,630円 |
Kindle版 | 3,557円 |
出版社 | 技術評論社 |
実践Selenium WebDriver
本書はSeleniumの導入と構成の仕方、テストの書き方について包括的に解説する書籍です。IE、Firefox、Chrome、Safariなどのブラウザに対応するWebDriverの機能から、iOSとAndroidアプリケーションのテスト、さらにUIテストツールのPageObjectパターンまで、サンプルコードを使って具体的に説明します。日本語版では玉川紘子氏による「CI(継続的インテグレーション)ツールの活用」を付録として追加。WebアプリケーションのUIテストを自動化したい技術者必携の一冊です。
発売日 | 2014年9月18日(木) |
---|---|
単行本 | 264ページ |
定価 | 3,300円 |
出版社 | オライリージャパン |
Seleniumデザインパターン&ベストプラクティス
本書はSelenium WebDriverを使ったテストの構築方法やデザインパターン、メンテナンス性に焦点を当てた書籍です。Seleniumを使った人ならわかるテスト時の取り入れるべき事柄や避けるべき事柄をパターン化してわかりやすく解説しています。テストをリファクタリングする方法、自動テストプロジェクトにおけるSpaghettiパターン、テストデータについて、テストを安定させるコツ、さらにテストスイートを成長させるヒントなど、テスト自動化設計におけるポイントを幅広く紹介します。ベストプラクティスだけでなく、アンチパターンも紹介しているため、失敗の原因を知り、適切な設計パターンを適用することができるようになります。
発売日 | 2015年9月18日(金) |
---|---|
単行本 | 256ページ |
定価 | 3,300円 |
出版社 | オライリージャパン |
IT資格初心者おすすめ一覧
IT資格初心者おすすめ一覧ですが、国家資格には有効期限がなく更新の必要もないので、有効期限切れで失効してしまうことがありません。国家資格は就職・転職時に能力を証明することができて高評価になるので、IT資格初心者にもおすすめです。
ITパスポート試験(iパス)
ITパスポート試験はiパスの略称で呼ばれる国家試験で、職種や業界に関係なくITに関する知識を必要とするすべての社会人が備えておくべき基礎的なIT知識を問われる国家試験なので、IT業界に携わる人やITに関する知識を必要とする人であれば取得しておきたい資格となっている。難易度はITスキル標準(ITSS:IT Skill Standard)で最も低いレベル1、エントリーレベルで、合格率は約50%となっている。
試験方式 | CBT(Computer Based Testing)方式 |
---|---|
試験実施日 | 随時 |
試験地・試験会場 | 全国47都道府県で実施 |
試験時間 | 120分 |
出題数 | 100問 |
出題形式 | 四肢択一式 |
合格基準 | 600点以上/1,000点 |
合格率 | 約50% |
受験手数料 | 7,500円 |
基本情報技術者試験
基本情報技術者試験はITエンジニアの登竜門となる国家試験で、情報処理に関する基本的な知識や技能を証明できるので、システムエンジニアやプログラマを目指すのであればぜひ取得したい資格となっている。難易度はITスキル標準(ITSS:IT Skill Standard)で下から2番目となるレベル2で、合格率は約50%となっている。
試験方式 | CBT(Computer Based Testing)方式 |
---|---|
試験実施日 | 随時 |
試験地・試験会場 | 全国47都道府県で実施 |
試験時間 | 科目A:90分 科目B:120分 |
出題数 | 科目A:60問 科目B:20問 |
出題形式 | 科目A:四肢択一式 科目B:多肢選択式 |
合格基準 | 科目A・科目Bそれぞれ600点以上/1,000点 |
合格率 | 約50% |
受験手数料 | 7,500円 |
情報セキュリティマネジメント試験
情報セキュリティマネジメント試験はセキュリティ計画、運用、評価、改善などについて知識を問われる国家試験で、情報セキュリティ部門の担当者やセキュリティエンジニア、セキュリティコンサルタントを目指す人におすすめの資格となっている。難易度はITスキル標準(ITSS:IT Skill Standard)で下から2番目となるレベル2で、合格率は約75%となっている。
試験方式 | CBT(Computer Based Testing)方式 |
---|---|
試験実施日 | 随時 |
試験地・試験会場 | 全国47都道府県で実施 |
試験時間 | 120分 |
出題数 | 科目A:48問 科目B:12問 |
出題形式 | 科目A:四肢択一式 科目B:多肢選択式 |
合格基準 | 600点以上/1,000点 |
合格率 | 約75% |
受験手数料 | 7,500円 |
マイクロソフト オフィス スペシャリスト(MOS)
マイクロソフト オフィス スペシャリスト(MOS)はMicrosoft社が実施するベンダー資格で、試験科目はWord、Excel、PowerPoint、Access、Outlookの5種類があり、科目ごとに独立した試験で、Microsoft Office製品の知識・操作スキルを客観的に評価・証明する資格試験となっている。仕事に役立つ実務能力が身につけられる資格としてスキルアップや就職・転職を目指す方から人気を集める資格で、難易度はITパスポート試験程度と言われている。
試験方式 | CBT(Computer Based Testing)方式 |
---|---|
試験実施日 | 随時 |
試験地・試験会場 | 全国1500か所の試験会場 |
試験時間 | 50分 |
出題数 | 50問前後 |
出題形式 | マルチプロジェクト |
合格基準 | 非公開 目安700点/1,000点 |
合格率 | 非公開 |
受験手数料 | 10,780円 |