Попробуйте это,
Сначала удалите определение, оно не будет работать, если вы определите и удалите из прототипа.
Object.defineProperty(navigator, 'webdriver', ()=>{}) // <-- delete this part
Замените ваш код этим.
delete navigator.__proto__.webdriver;
Результат:
![enter image description here](https://i.stack.imgur.com/7tDMV.png)
Почему это работает?
Удаление напрямую, просто удалите экземпляр объекта, а не фактическое определение. Получатель и установщик все еще там, так что браузер может найти его.
![enter image description here](https://i.stack.imgur.com/EBAeH.png)
Однако, если вы удалите из реального прототипа, он больше не будет существовать вообще.
![enter image description here](https://i.stack.imgur.com/QRrGT.png)
Дополнительные советы
Вы упомянули, что хотите сделать свое приложение необнаружимым, есть много плагинов, которые достигают того же самого, например, этот пакет под названием puppeteer-extra-plugin-stealth включает в себя несколько классных методов обнаружения анти-ботов. Иногда лучше просто повторно использовать некоторые пакеты, чем заново создавать решение снова и снова.
PS: Я могу ошибаться из-за вышеприведенного объяснения, не стесняйтесь направлять меня, чтобы я мог улучшить ответ.