解决使用selenium-java被检测导致滑块验证失败

最近使用selenium-java模拟登录某网站,遇到如下问题:

某网站滑块验证

一点不给机会,只要是通过驱动打开的浏览器,即使用手滑动也会验证失败

在网站查找解决方法,得知是使用自动化软件打开浏览器会有特征码,navigator.webdriver的值为true导致的,继续查找解决方案,有使用mitmproxy做代理,拦截用py脚本消除特征码的,因为我不会python,这玩意儿我研究半天搞不懂就放弃了.还有一些其他方法测试没有用的…

正当万念俱灰的时候看到python版的Puppeteer,Pyppeteer框架的如下代码,此代码就是执行js将navigator.webdriver的值改为false :

await page.evaluate(
        '''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')```

于是我用java版的Puppeteer测试了一下,打开的网站用手滑动可以通过验证了.

于是在selenium中, driver.get(“xxxx”)后执行如下代码:

((JavascriptExecutor) driver).executeScript("Object.defineProperties(navigator,{ webdriver:{ get: () => false } })");

最终测试通过.
在这里插入图片描述

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值