Playwright for Go(というかPlaywright)では launchPersistentContext
を使うと、例えばChromeで普段利用しているユーザデータ(ブラウザプロファイル)を参照することができる。
https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
もちろんこれは普段利用しているユーザデータを参照するだけでなく、Playwrightを通じて利用するブラウザ専用のプロファイルを作ることも可能。
※ちなみにPlaywrightでは認証情報を扱う仕組みが他にもあり、例えば認証が必要なサイトでテストをするようなケースではそちらを利用したほうが良かったりする。今回こちらに書いている方法はどちらかというと、ちょっと変化球なケースを想定している
以下にサンプルコードを示す。
なお、サンプルコードではローカルにインストールされているChromeを利用するような記述となっており、ヘッドレスモードはfalseとしている。
(そもそも、Playwright側で利用するChromiumなどでもこのやり方ができるかは未検証。)
この場合、実行するとChromeが立ち上がる挙動となるので、これで例えばサイトにログインした状態で終了した場合、再度同様のユーザデータ(ブラウザプロファイル)を参照して起動させることですでにログイン済みとなっていることを確認している。
runOption := &playwright.RunOptions{ SkipInstallBrowsers: true, } if err := playwright.Install(runOption); err != nil { log.Fatalf("could not install playwright dependencies: %v", err) } pw, _ = playwright.Run() userDataDir := "foo" // Chromeのuser-dataを保存するパスを指定する contextOptions := playwright.BrowserTypeLaunchPersistentContextOptions{ Channel: playwright.String("chrome"), Headless: playwright.Bool(false), } browser, _ := pw.Chromium.LaunchPersistentContext(userDataDir, contextOptions) page, _ := browser.NewPage()
以上、備忘録でした。