Playwrightを使用して、Webページのスクリーンショット撮影を行う

Playwrightとは

PlaywrightとはMicrosoftが提供しているツールで、Webアプリケーションのテストを自動化できます。Webページのスクリーンショット撮影などを行う事もできます。
主にWebサービス等を提供している事業者が継続的な品質管理やテストの自動化を効率化するために利用しています。
ブラウザをコマンドライン上で実行できるNodeのライブラリであり、使用する際はある程度javascriptコードの知識が必要になります。

Playwrightでできること

PlaywrightのツールはGoogle Chrome, Microsoft Edge, Firefoxなどの主要なブラウザをサポートしており、異なるブラウザでのテストをすることが容易になります。
Webページの特定の位置をスクリーンショットしたり、ブラウザの幅を変更してスクリーンショットすることが可能なため、スクリーンショット撮影を自動化することによって定期的に特定のWebサイトを監視し、変更や不具合を素早く検出することができます。

Playwrightを使用する際の注意点

PlaywrightはWebページ内の要素に対して操作する内容を指定する形でコードを記述していきます。Webページ内の要素の位置が変わった場合などは、コードのメンテナンスが必要になるケースがあります。
Webページの読み込み速度にばらつきがあるケースなどでは、待機やタイムアウトの設定を行う必要があります。利用する際に覚えておくと良いポイントです。

環境構築

環境
macOS:
Node: v20.7.0
Npm: v10.1.0
Npx: v10.1.0

1.ターミナルで以下のコマンドを実行し、NodeとNpmをインストール

brew install node

2.プロジェクトを用意

mkdir 任意名
cd 任意名

3.Nodeプロジェクトを初期化

npm init -y

4.PlaywrightをNodeプロジェクトにインストール

npm install playwright

5.Playwrightが使用するブラウザをインストール

npx playwright install

ディレクトリ構成

プロジェクト名
├── node_modules
│   ├── playwright
└── package.json 

・node_modules: package.jsonを元にしてパッケージがインストールされるディレクトリ
・package.json: Nodeプロジェクトの設定ファイル

スクリーンショット撮影を実装

簡易的に、Playwightを使用して、指定したWebサイトをスクリーンショットして撮影した写真を保存する機能を実装していきます。

実行するjsファイルを作成

touch sample.js

作成したsample.jsに以下のコードを追加
Paywrightは非同期のAPIなため、async/awaitを使用して操作を待機します。

// インストールしたPlaywrightをインポート
const { chromium } = require(‘playwright’);
(async () => {
  // Playwrightのchromiumブラウザを起動
  const browser = await chromium.launch();
  // Webブラウザのページを作成
  const page = await browser.newPage();
  // 指定したWebサイトに移動
  await page.goto(‘スクリーンショットするWebサイトのURL’);
  // 移動したWebサイトをスクーリンショットして保存
  await page.screenshot({ path: ‘sample.png’ });
  // chromiumブラウザを閉じる
  await browser.close();
});

↓スクリーンショットしたいWebサイトのURLに変更してください。

await page.goto(‘スクリーンショットするWebサイトのURL’);

↓スクリーンショットする画像の名前に変更してください。

await page.screenshot({ path: ‘sample.png’ });

このコードの処理内容は、指定したURLのWebサイトをスクリーンショットして作成したプロジェクト内に画像を保存します。

実行してみる

環境構築と実行するjsファイルを用意したら実行をしてみます
jsファイルを実行

node sample.js

実行結果

プロジェクト名
├── node_modules
│   ├── playwright
├── sample.js
├── sample.png
└── package.json 

結果はプロジェクト内にスクリーンショットした画像が保存されました。

まとめ

Playwrightは主にWebアプリのテストの自動化やデータの監視にかなり適したツールだと考えられます。今回用意したコードを元に定期的にスクリーンショットを自動化したり、スクリーンショットしたい位置までスクロールする機能の拡張が可能です。
一通り触ってみた感じだと小規模なWebアプリのテストの自動化などでは適しているかなと思いますが、大規模なWebアプリや複雑な操作のテストを自動化しようとすると、テストコードの複雑性が高まりテストのメンテナンスのしやすさなど変わっていくかなと思います。

広く活用できるクラウド型RPA『クラウドBOT』

クラウドBOTはブラウザ操作を自動化できるクラウド型のRPAサービスです。Webサービスの自動テストツールとしての利用も広がってきています。複雑な環境構築をが不要であり、会員登録すると無料でブラウザ操作を自動化するロボットを作成できます。ロボットは基本的にノーコードで構築できますが、複雑な処理を行いたい場合は、javascriptを直接記述し、実行させることもできます。
Webサービスのテスト自動化を検討されている方は是非一度お試し下さい。


クラウド型RPAについてもっと詳しく


  1. クラウド型RPAを低価格で導入!そもそもRPAとは?導入ニーズが高まった背景 無料体験も実施!活用事例も参考に
  2. クラウド型RPAを導入するメリットとは?専門知識がなくても簡単に活用できるのが魅力
  3. クラウド型RPAツールを無料体験!代表的なRPA製品「オンプレミス型」と「クラウド型」について
  4. クラウド型RPAツールの導入事例をご紹介!RPAツールの選定ポイント 使い方簡単で格安
  5. iPaaS製品の必要性 iPaaSとの連携が可能なクラウド型RPA『クラウドBOT』 無料プランから利用可能!初めての方は事例を参考に
  6. iPaaS製品とRPAツールの違い 日本でも普及が広がる!iPaaSを導入するメリット
  7. SaaSを連携させてワークフローの自動化・効率化を実現!クラウドサービス「SaaS」の連携手段とクラウド型のRPAツールを利用した連携
  8. SaaSの連携に有用な2製品「iPaaS」と「クラウド型RPA」とは SaaSの連携なら各APIに対応可能◎活用事例も多い『クラウドBOT』の導入を
  9. webブラウザ操作の自動化なら『クラウドBOT』 RPAツールで自動化・効率化できる業務 データ抽出を効率化するなら
  10. webブラウザ操作の自動化ならプログラミング不要で更新も手間いらずの『クラウドBOT』 自動化できる操作をご紹介
  11. ブラウザ操作を自動化する『クラウドBOT』は、日常的に行っているブラウザ操作をノーコードで自動化する事ができます
  12. ブラウザを自動操作する方法 - 『クラウドBOT』を使用して、ブラウザを自動操作する方法を解説します。
  13. Google Chromeのを自動操作するならインストール不要・プログラミング不要で自動操作を実化できる『クラウドBOT』がおすすめ
  14. 初心者でも簡単に使えるおすすめのRPAツール3選 | RPAの選定ポイントについても解説
  15. ブラウザのスクリーンショット撮影を自動化する方法をご紹介
  16. Seleniumを使ってWebスクレイピングを行う方法について
  17. Web上の業務を効率化できるツールをご紹介 | iPaaS、RPAの違いとは
  18. 総務におすすめRPA活用事例をご紹介 | クラウド型RPA活用事例
  19. ブラウザ上で行っている業務を効率化できるおすすめツール3選
  20. PuppeteerとNode.jsを使用してブラウザ操作を自動化する方法
  21. Selenium×pythonでWebスクレイピングを実現する方法(ソースコード付き) | Seleniumとpythonの環境構築と実行手順も解説
  22. クラウド型RPAを用いたカートシステムとWMSのデータ連携事例をご紹介 | ローコストで始める受注データの連携、出荷データの連携
  23. Chromeの拡張機能を使用してWebページのスクリーンショット撮影する方法
  24. Playwrightを使用して、Webページのスクリーンショット撮影を行う
  25. 無料で使えるおすすめのRPAをご紹介 | 無料RPAのメリット・デメリットや選定基準も解説
  26. APIがないWebシステムとデータ連携する方法
  27. Puppeteerを使用してテストを自動化する方法
  28. 簡単にできる!Webサイト画像の一括ダウンロードガイド
  29. 税理士・会計士におすすめ!RPA活用事例 RPAを使って業務効率改善を
  30. RPAとAIの組み合わせ事例をご紹介 | RPA、AIのそれぞれの特徴と組み合わせで実現できる自動化について解説
  31. playwrightを使用してブラウザのテストを自動化する方法について