问答 请问在 ui 自动化中,如何解决图形验证码类的问题,求个解决问题的思路或者方向

siyi1 · 2022年12月29日 · 最后由 Just_Scenery 回复于 2023年08月10日 · 16768 次阅读

请问在 ui 自动化中,遇到了如图中的场景,图形验证码(已知图形验证码为 base64 格式 )
不知道有没有大神给指点一个方向,或者思路

最佳回复

我最近正在做这个, 分享一下我的解决方案:

  1. 先抓包拿到获取图形验证码的接口, 此接口一般会返回一个 base64 的图片和一个图片 id
  2. 通过 ddddocr 识别验证码
  3. 调用登录接口, 传入账号密码验证码及验证码 id

楼主如果是采用 ui 自动化建议使用以下方案:

  1. 通过 selenium 对验证码控件进行截图, 将验证码图片保存下来 ( 如果出现图片不够清晰的情况, 可以使用 SeleniumWire 对页面接口进行抓包, 抓到获取验证码接口后解析接口参数就可以直接获取到 base64 的图片了 )
  2. 通过 ddddocr 识别验证码
  3. 输入账号密码及验证码 进行登录
共收到 31 条回复 时间 点赞

可以通过第三方接口识别,,以前买过,印象中是十块钱可以调五百次,识别率还可以的。

接入打码平台,或者提供万能验证码

通过 cookie 绕过

一般直接找开发,协调,要么取消验证码,要么给万能验证码

首先明确一点的是,你是在测验证码还是业务,如果你用手段绕过了验证码,那验证码要不要提 bug。

通常是直接找开发,直接取消。这么做就省时省力。
要么就找一个开源或者付费的 OCR 图片识别工具或者接口。

你这个验证码还是比较清晰,没有多余的干扰字符,ddddocr 这个库应该可以 hold 住,当然最简单的方式还是走挡板验证,即后台写死一个万能验证码。

首选 redis,其次 ddddocr 识别

tensorflow 有个 ocr 识别 对中文识别率有点低 还需要对图片进行一些处理。数字的话应该还好,可以尝试一下。

siyi1 #12 · 2022年12月30日 Author
芜湖 回复

感谢

siyi1 #13 · 2022年12月30日 Author

感谢大佬的思路,

我最近也在做 ui 自动化, 这种验证码,直接找开发,绕过去 [狗头]

你这验证码 还可以识别率应该挺高的 可以用一下百度的 ocr 识别 api 每天可以免费用几百次我记得

如果是为了测图形验证码登录之后的业务功能,直接找开发先屏蔽掉最省事

用 paddle ocr

没必要自动化这个

实际测试,是通过万能验证码和屏蔽验证码来绕过

我最近正在做这个, 分享一下我的解决方案:

  1. 先抓包拿到获取图形验证码的接口, 此接口一般会返回一个 base64 的图片和一个图片 id
  2. 通过 ddddocr 识别验证码
  3. 调用登录接口, 传入账号密码验证码及验证码 id

楼主如果是采用 ui 自动化建议使用以下方案:

  1. 通过 selenium 对验证码控件进行截图, 将验证码图片保存下来 ( 如果出现图片不够清晰的情况, 可以使用 SeleniumWire 对页面接口进行抓包, 抓到获取验证码接口后解析接口参数就可以直接获取到 base64 的图片了 )
  2. 通过 ddddocr 识别验证码
  3. 输入账号密码及验证码 进行登录

app 上那种极验证的也很烦,还没见有比较好的解决方案。

能绕过就绕过,花费太多时间在这里,不值得,没啥收益

有一个类似的问题,楼主遇到过吗?短信验证码怎么使用 UI 自动化去解决😁

找研发要个万能验证码 , 或者登陆拿 token 绕过就行了。

测试环境让开发给你换个万能的验证码

调接口拿验证码图片的数据流,数据流转换成图片保存本地,然后 ddddocr 识别。方便的话还是找开发给个万能验证码

找开发处理下,绕过验证码登录

村雨 回复

这个可以有哈哈哈,花钱办事,省事。。

cnocr 识别率挺好的。

ddddOCR 可以实现,但是识别精确率低,百度 AIP 中的 OCR 识别率挺高,只不过每个月只有 1000 次

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册