selenium设置window.navigator.webdriver失败

01 本文主题

各位读者朋友大家好,本文分享的主要内容是chromdriver升级到88.0+版本后,如何设置webdriver.navigator.webdriver属性

02 实验环境
  • windows10
  • Java语言
  • chrome版本:88.0.4324.104(正式版本)(32 位)
  • 温馨提示:其它系统或者编程语言亦可,不作要求
03 实验内容

在selenium+chromdriver自动化操作的过程中,要想绕过淘宝、京东等大站点的检测,webdriver.navigator.webdriver属性值设置为undefined是非常有必要的。

chrom更改该属性值大概经历过如下三个版本

## chromdriver69版本以前
ChromeOptions option = new ChromeOptions();
option.setExperimentalOption("excludeSwitches", 
Collections.singletonList("enable-automation"));
ChromeDriver driver=new ChromeDriver(option);

## chromdriver版本介于69—87之间
HashMap<String, Object> map = Maps.newHashMap();
map.put("source", "Object.defineProperty(navigator, 'webdriver', {get: () => undefined }); ");
driver.executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", map);

## chromdriver版本为88.0+
ChromeOptions option = new ChromeOptions();
option.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
ChromeDriver driver=new ChromeDriver(option);

以上就是Java语言下webdriver属性值的修改方法,如果小伙伴用的是其它语言,提取出option参数内容,替换到你所使用的 语言即可。

除此之外,要想避免自动化操作被大站检测到,还需要修改编辑chromdriver源码中的特征字符串,搜索【cdc_asd】,将该字符串修改为另一个等长的字符串即可,一般搜索cdc_asd就可以搜到。

04 总结

如果大家在实验过程中遇到任何问题,亦或者你需要了解selenium滑块或者刮图层等高级操作,欢迎大家进群学习探讨。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学知学知

日拱一卒,欢迎您的加入

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值