概要
E2Eテストの手動実施時に発生する、エクセルへのスクリーンショット貼り付け作業を想定
しています。
ペタペタ作業は直接的に品質向上に寄与しないので、少しでも時短しようという旨です。
alt + printscreenで貼り付けが動くので、Web画面撮影以外の用途でも一応使用できます
機能
-
クリップボード監視:
Alt+PrintScreenでキャプチャした画像を自動でExcelに貼付 - ブラウザ自動撮影: Chrome / Edge のURL変化を検知し、ページ遷移時に自動スクショ
- 安定判定: URLと画面の両方が安定したタイミングで撮影(ローディング中は待機)
- マルチモニター対応: 2枚目以降のモニターに表示されたブラウザも正しく撮影
- 日時記録: 貼付画像の1行上に撮影日時を自動記録(ON/OFF切替可)
- スクロール追従: 貼付のたびにExcelが自動スクロール
動作環境
- Windows 10 / 11
- PowerShell 5.1 以上
- Microsoft Excel(起動済みであること)
- Chrome または Edge
セットアップ
追加インストールは不要です。スクリプトファイルをダウンロードするだけで使えます。
実行ポリシーの確認
PowerShellで以下を実行し、スクリプトの実行が許可されているか確認します。
Get-ExecutionPolicy
Restricted と表示された場合は以下を実行します。
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
使い方
1. Excelを開く
貼付先のExcelファイルを開いておきます。
2. 設定を編集する(任意)
スクリプト冒頭の設定欄を編集します。空欄のままでも動作します。
$CFG_FILENAME = "" # 貼付先ファイル名(部分一致)。空欄=アクティブなファイル
$CFG_SHEETNAME = "" # 貼付先シート名。空欄=アクティブシート
$CFG_COLUMN = "" # 貼付列(例: "C")。空欄=C列
$CFG_BROWSER = "" # 監視ブラウザ("chrome" or "msedge")。空欄=両方
$CFG_SHOW_DATE = $true # 日時記録($true=する / $false=しない)
$IMG_WIDTH = 400 # 貼付画像の幅(ピクセル)
$IMG_HEIGHT = 300 # 貼付画像の高さ(ピクセル)
$ROW_STEP = 20 # 画像1枚あたりの行数
$START_ROW = 3 # 最初の貼付行
3. スクリプトを実行する
PowerShellでスクリプトを実行します。
.\EvidenceAuto.ps1
起動すると以下のように表示されます。
File : テスト証跡.xlsx
Sheet : 証跡
Column : C
Show date: True
Watching clipboard and browser URL... Press Ctrl+C to stop
4. テストを実施する
ブラウザ操作(自動)
ブラウザでページを遷移するだけで自動撮影・貼付されます。
その他の画面(手動)
Alt+PrintScreen でアクティブウィンドウをキャプチャすると自動で貼付されます。
5. 停止する
PowerShellウィンドウで Ctrl+C を押します。
Excelのレイアウト
$CFG_SHOW_DATE = $true の場合、以下のように貼付されます。
行2 │ 2025/03/28 14:30:22 ← 撮影日時
行3 │ [画像1]
...
行22 │ 2025/03/28 14:31:05 ← 撮影日時
行23 │ [画像2]
注意事項
- スクリプト実行中はExcelを開いたままにしてください
- SPAなどURLが変化しないページ遷移は自動撮影されません。その場合は
Alt+PrintScreenを押下する必要があります(自動貼り付けは動きます)
トラブルシューティング
| 症状 | 対処 |
|---|---|
型名 'ScreenCapture' は既に存在しています |
PowerShellウィンドウを閉じて新しいセッションで実行 |
| ブラウザ遷移が検知されない |
$CFG_BROWSER に "chrome" または "msedge" を明示的に指定 |
| 画像が見切れる |
$IMG_WIDTH / $IMG_HEIGHT を大きくする |
| 画像が重なる |
$ROW_STEP を大きくする |
| ページ読み込み前に撮影される | タイムアウト(5秒)が発動している。ネットワークが遅い場合は正常動作 |