…ということがあり、結構な時間ハマってしまった。
Playwrightの使い方が間違っているのかと思い、BrowserContextのAPIドキュメントを読んだりGitHubのIssuesを検索したりしたが何がダメなのか分からず、これはもしかしてPlaywright特有の問題じゃないのではというところに至った。ここまでが長かった。
というわけでPlaywrightに関係ないところも含めて調べていたらStackoverflowで以下を発見。
…というわけで、Cookieのvalueに;
が入っていたのが理由だった。ブラウザから適当にコピペをしていたせいで、別のCookieの定義が一つのvalueに入ってしまっていた。valueA; cookie_name2=valueB
みたいな感じ。それぞれ別のオブジェクトとして定義したら(当然セミコロンは含まれないため)動くようになった。
Cookie Valueにセミコロンを入れてはいけないというのは今まであまり考えたことがなかったなあ。なお、どうしてもセミコロンを入れたい場合はencodeURIComponent()
すればよいとのこと。
ちなみに、Invalid cookie fields
はChromiumが出しているエラーメッセージのようだった。ここに早く気がついていれば…。