Puppeteer删除Navigator.Webdriver

问题描述 投票:2回答:3

我用木偶戏去刮。我可以传递navigator.webdriver属性= false但我需要完全删除该道具。

https://bot.sannysoft.com/

我尝试将false传递给navigator.webdriver。这个技巧可以传递给https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html

但在https://bot.sannysoft.com/不能。

这是网页测试机器人。这个测试正在寻找导航器对象中是否有任何“webdriver”道具。不在乎它的真假。我需要从浏览器中删除此webdriver prop。

selenium automation puppeteer browser-automation
3个回答
1
投票

试试这个 :?

const newProto = navigator.__proto__;
delete newProto.webdriver;
navigator.__proto__ = newProto;

0
投票

既然我不能发表评论,我会留下答案:

我有同样的问题,@ Nodarius的回答对我有用。既然你不接受它,我认为你的问题仍然存在。

这可能是因为,即使您运行,您也需要在页面加载之前(或在网站访问变量之前)运行该代码。

我使用代理(https://mitmproxy.org/)实现了这一点,该代理在页面加载之前加载脚本。

希望能帮助到你。


0
投票

这有效

await page.evaluateOnNewDocument(() => {
  window.navigator = {}
})
© www.soinside.com 2019 - 2024. All rights reserved.