前回、Microsoft Edgeのヘッドレスモードおよびスクリーンショットの取得機能を使用することで、Webページのスクリーンショットをコマンドラインから取得できることを示した。今回はこの機能にスクリーンショットのサイズの指定を追加する。スクリーンショットの取得ではサイズが指定できるかどうかはとても大切だ。
前回の成果物
最初に、前回の成果物を確認しておこう。前回はMicrosoft Edgeのヘッドレスモードでスクリーンショットを取得するコマンドを次のようなPowerShellのスクリプト(getss.ps1)にまとめるところまで説明した。次のようなスクリプトができた。
#!/usr/bin/env pwsh
#========================================================================
# スクリーンショットを取得する
#========================================================================
#========================================================================
# 引数を処理
# -URL url WebリソースのURL
# -Agent agent リクエストで使うエージェントを指定
#========================================================================
Param(
[Parameter(Mandatory=$true)][String]$URL = ""
)
#========================================================================
# デフォルトのスクリーンショットファイル
#========================================================================
$outfile="${env:HOME}/ss.png"
#========================================================================
# スクリーンショットの取得に利用するアプリケーション
#========================================================================
$msedge='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
#========================================================================
# どの方法でスクリーンショットを取得するかを判断
#========================================================================
$method='msedge'
#========================================================================
# Webページのスクリーンショットを取得
#========================================================================
switch ($method)
{
#================================================================
# Microsoft Edgeを使って取得
#================================================================
'msedge'
{
$o1='--headless'
$o2='--screenshot="' + ${outfile} + '"'
Start-Process -FilePath $msedge `
-ArgumentList $o1,$o2,$URL `
-Wait
break
}
}
今回はここにサイズ指定の機能を追加する。