yak shaving life

遠回りこそが最短の道

Playwrightで addCookies したら Invalid cookie fields エラーが出て落ちてしまう

…ということがあり、結構な時間ハマってしまった。

Playwrightの使い方が間違っているのかと思い、BrowserContextのAPIドキュメントを読んだりGitHubのIssuesを検索したりしたが何がダメなのか分からず、これはもしかしてPlaywright特有の問題じゃないのではというところに至った。ここまでが長かった。

というわけでPlaywrightに関係ないところも含めて調べていたらStackoverflowで以下を発見。

stackoverflow.com

…というわけで、Cookievalue; が入っていたのが理由だった。ブラウザから適当にコピペをしていたせいで、別のCookieの定義が一つのvalueに入ってしまっていた。valueA; cookie_name2=valueB みたいな感じ。それぞれ別のオブジェクトとして定義したら(当然セミコロンは含まれないため)動くようになった。

Cookie Valueセミコロンを入れてはいけないというのは今まであまり考えたことがなかったなあ。なお、どうしてもセミコロンを入れたい場合はencodeURIComponent()すればよいとのこと。

ちなみに、Invalid cookie fieldsChromiumが出しているエラーメッセージのようだった。ここに早く気がついていれば…。