木偶删除Navigator.Webdriver

时间:2018-12-26 16:12:05

标签: selenium automation puppeteer browser-automation

我正在用木偶戏scrap。 我可以通过navigator.webdriver property = 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。

3 个答案:

答案 0 :(得分:1)

尝试一下:?

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

答案 1 :(得分:0)

由于我无法发表评论,所以我会留下答案:

我有同样的问题,@ Nodarius的回答对我有用。 由于您不接受它,因此我认为您的问题仍然存在。

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

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

希望有帮助。

答案 2 :(得分:0)

这有效

await page.evaluateOnNewDocument(() => {
  window.navigator = {}
})