操り人形師を使ってこすります。 navigator.webdriver property = falseを渡すことはできますが、その小道具を完全に削除する必要があります。
Falseをnavigator.webdriverに渡してみました。このトリックは受け継がれます https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html
しかし https://bot.sannysoft.com/ カント。
これがウェブページテストボットです。このテストでは、ナビゲーターオブジェクトに「webdriver」プロップがあるかどうかを探しています。その真か偽かは気にしません。このwebdriverpropをブラウザから削除する必要があります。
コメントできないので、答えを残しておきます。
私も同じ質問をしました、そして@Nodariusの答えは私のために働きました。あなたはそれを受け入れなかったので、私はあなたの問題がまだ続いていると思います。
これはおそらく、実行したとしても、ページが読み込まれる前(またはWebサイトが変数にアクセスする前)にそのコードを実行する必要があるためです。
これは、ページが読み込まれる前にスクリプトを読み込むプロキシ( https://mitmproxy.org/ )を使用して実現しました。
それが役に立てば幸い。
これは動作します
await page.evaluateOnNewDocument(() => {
window.navigator = {}
})