PlaywrightとGoogle reCAPTCHA
Playwrightは当然ロボット系のテストなので、Google reCAPTCHAに引っかかります。 なんですが、よくわかりませんが、reCAPTCHA v3をテストできるページでちょっと試してみたら意外なことが…。 まず予備知識としてreCAPTCHAにはv2とv3が今は出回っています。 v2は写真の中から「バス」を選択してくださいみたいな写真から選ぶやつ。 v3はブラウザ利用者は何もしないで判定される進化した版です。 当然v3であればユーザーは余計な選択などをしなくてもいいため、ユーザー利便性も上がりますが、導入側はボットと判断したときの処理を自前で作らなければならないという仕様です。 で、このボット判定ですが、Googleでやってくれるのはボット度合いを数値化した指数みたいなものを返してきます。 一応1.0~0.0で値が1.0に近ければより人間らしいということになります。 問題はv2と違って、v3は値をいくつの時にボットと判定するかはサイトの運営者が決めてくださいってこと。 閾値0.5ぐらいで振り分けるのが一般的なようですが、いろいろ読んでいるとボットでもないのに0.3と判断されたといった記事も見かけます。 さて、ではPlaywrightではどうかというと…。 v3のロボット閾値判定が0.7になるんですよ。上記にも書いたように0.9ぐらいなら間違いなく人間判定で、場合によっては人間の操作で0.5や0.3と判定値を返してくることすらあるらしいのに、Playwrightでアクセスしてみたら0.7って結果に…。 まじか。 ちなみにreCAPTCHA v2は音声での認証にしてMicrosoftのAzureの音声API通せば(Googleクラウドをあえて使わず)まず失敗しません。試してみたところ、Googleの無料の音声解析APIはまず聞き取ってくれません。Azureはほぼ確実に聞き取れます。 v3のほうはまあ、テストページが1つだけなので、いろんなページに移動する(各ページにreCAPTCHA APIが設置されている)場合はちゃんと0.3とか0.1になるのかもしれませんが、トップページとかお問い合わせのページにポツンと入れているだけだと、Playwrightでは通過できてしまうのかもしれません。 6/28 追記 いくつかのテストサイトで試してみましたが、0.3と判断