ブラウザを操作してPlaywrightのコードを自動生成する(Node.js/Python)

ブラウザを操作してPlaywrightのコードを自動生成する(Node.js/Python)

Playwrightには、Chromiumブラウザで操作した内容をそのままコードにしてくれる「コードの自動生成機能」があります。

Node.jsとPythonであればPlaywrightがインストールされていれば使用できます。
(C#には現状機能がないようです。)

Node.jsで作成されるコードは「Playwright Test」で使う自動テスト用のtsファイルですので、
「Playwright Library」をインストールしている場合はそのまま使えませんので、必要なコードを切り貼りしてください。

VSCodeを使ったコード自動生成機能についてはこちらを参考にしてください。

コード自動生成の実行(Node.js/Python)

1.以下のコマンドを実行します。

							npx playwright codegen
						
							playwright codegen
						
 ChromiumブラウザとInspectorウィンドウが立ち上がります。
Playwrightのコード自動生成

2.あとはブラウザを操作すると、その内容のコードがInspector画面に出力されます。
Playwrightのコード自動生成

3.Recordボタンを押して記録を停止して、コピーボタンでクリップボードにコピーされます。

4.出力されたコードはそのままでは動作しない場合もありますので、必要であれば手直しして動作確認すれば完成です。

参考

 Playwright Inspector

codegenの便利なオプション

codegenの実行時にオプション指定することで、自動コード生成時にブラウザに対して色々な条件の変更を行うことができます。

npx playwright codegen --help
で使用可能なオプションを確認できます。
Pythonでも同じオプションを使用できます。

ブラウザ起動時に初期表示するURLの指定

コマンド実行時にURLを指定すると、ブラウザ起動時にそのURLを表示した状態で開始できます。
npx playwright codegen https://web.biz-prog.net/

コードを出力するファイルを指定する

コマンド実行時に--output [ファイル名]または-o [ファイル名]を指定すると、コードが指定したファイルに直接出力されます。
npx playwright codegen https://web.biz-prog.net/ --output test.js

ビューポートの指定

コマンド実行時に--viewport-size=800,600を指定すると、指定したビューポートのサイズでブラウザを起動します。
npx playwright codegen --viewport-size=800,600 https://web.biz-prog.net/
Playwrightのcodegenのviewport

モバイル機器をエミュレートする

コマンド実行時に--device="デバイス名"を指定すると、モバイル機器をエミュレートした状態でブラウザが起動します。
npx playwright codegen --device="iPhone 13" https://web.biz-prog.net/
Playwrightのcodegenのdevices

使用できるデバイスは"iPhone 13"以外にも色々あります。
リストはこちらにあります。

ダークモード/ライトモードの指定

コマンド実行時に--color-scheme=モードを指定すると、配色を指定した状態でブラウザが起動します。
darklightが指定できます。
npx playwright codegen --color-scheme=dark https://web.biz-prog.net/

タイムゾーンの指定

コマンド実行時に--timezone="タイムゾーン"を指定すると、指定したタイムゾーンでブラウザが起動します。
npx playwright codegen --timezone="Europe/Rome" https://web.biz-prog.net/

位置情報の指定

コマンド実行時に--geolocation="経度,緯度"を指定すると、現在地が指定した座標になります。
npx playwright codegen --geolocation="41.890221,12.492348" bing.com/maps
ブラウザ起動後に、現在位置を表示するボタンを押してください。
Playwrightのcodegenのgeolocation

言語の指定

コマンド実行時に--lang="言語"を指定すると、指定した言語でブラウザが起動します。
npx playwright codegen --lang="en-US" bing.com/maps
Playwrightのcodegenのlang

CookieとloacalStrageの保存・読み込み

コマンド実行時に--save-storage=ファイル名を指定すると、セッションが終わるときにCookieとlocalStorageを指定ファイルに保存します。
npx playwright codegen github.com/microsoft/playwright --save-storage=auth.json

認証が必要なサイトで保存しておき、次の実行時に情報を読み込んで復元することで、再度ログインしなくても認証済の状態にできます。

起動時の読み込みには--load-storage=ファイル名を指定します。
npx playwright codegen --load-storage=auth.json github.com/microsoft/playwright

参考

Playwright Codegen Emulation