つい先日、以下の記事を書いた際に Mac でやっていた内容を、Windows にも対応させるためにやった内容のちょっとしたメモです。
●playwright-core で Codegen(PC にインストール済みのブラウザを利用 + 結果を年月日などがついたファイル名で書き出す等) - Qiita
https://qiita.com/youtoy/items/9558b19cd3ddc90217ea
Mac でやっていた内容
前に書いた記事では、ローカルインストールした「playwright-core」で「Codegen」を使う話を書いていました(それと、PC にインストール済みのブラウザを利用する話を含めてました)。
その記事の中で、以下のように Codegen で生成された結果を、年月日・時間がついたファイル名で書き出すコマンドの話を含めていました。
※以下のコマンドは playwright-core のローカルインストールを行ったフォルダで実行するのと、PC には Chrome がインストール済みという前提
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code`date +%Y%m%d%H%M%S`.js
今回の内容
今回、これと同じことを Windows でやろうとした時、年月日・時間がついたファイル名を出力させる部分で修正が必要になりました。この記事は、その対応に関するちょっとしたメモ書きです。
実際のコマンド
最初に、Windows のコマンドプロンプト・PowerShell のそれぞれで、上記と同様のことを実現するための処理の例を書きます。
以下は、コマンドプロンプト用のものと、PowerShell用のものを、それぞれ書いています。
set time2=%time: =0%
set str=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code%str%.js
$str = Get-Date -Format yyyyMMddHHmmss
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code$str.js
それぞれについて、以下で少しだけ補足します。
コマンドに関する補足
上記のコマンドプロンプト用のものと PowerShell用のものは、それぞれ複数行で 1セットになっています。
基本的な流れでは、年月日と時間を示す文字列を作成し、それを出力ファイルのファイル名に含めるというものです。そして、コマンドプロンプトと PowerShell とで年月日・時間を出力するコマンドが違っているという感じです。
2つの違いとして 1点、コマンドプロンプトのほうだけ set time2=%time: =0%
という行があり、それはさらに補足を書いておきます。こちらは、今回の参照記事の 1つで触れられていた内容に関する対応です。
具体的には、以下のように 2桁目が 0 で埋められるのではなく空白になって意図しない出力になるので、それを避けるための処理になります。
変数利用を減らしたバージョン
ちなみに、上記の 2通りの処理は、 str
という変数を使わないで以下のように書くこともできます(見づらいですが...)。
set time2=%time: =0%
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%.js
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code$(Get-Date -Format yyyyMMddHHmmss).js
参考
以下、今回の Windows対応をした際に、参考にしたページです。