認証情報などを保存して毎回ログインしなくてよくする方法。ログイン操作などを行った後、[[ブラウザコンテキスト]]の[[storageState]]を使って[[JSON]]ファイルとして保存する。
```ts
await page.context().storageState({ path: "path/to/auth/json" });
```
利用する場合は、[[playwright.config.ts]]で設定する。
```ts
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
storageState: 'path/to/auth/json',
}
},
```
> [!caution]
> `storageState`に指定したパスがないとエラーになる。
> [!hint]
> [[playwright.config.ts]]の`storageState`に設定する方法は、該当のパスに[[JSON]]ファイルが存在しないとエラーになる。ただ、該当ファイルをバージョン管理してしまうと、機密情報をコミットしてしまうことになる。回避には事前処理が必要となるが、[[playwright.config.ts]]で設定せず、context作成時に処理を加えることで同等の効果を前処理なしに利用できる。
> ```ts
> const storagePath = "playwright/.auth/user.json";
> const context = await browser.newContext(
> fs.existsSync(storagePath) ? { storageState: storagePath } : {}
> );
> ```