• 0
  • 0
分享
  • 有了这个Python库,免费实现验证码识别!——软件测试圈
  • 曼倩诙谐 2023-04-18 11:41:32 字数 1496 阅读 940 收藏 0

  前言

  在做UI自动化时,无论是APP还是Web在登录页面经常会遇到需要输入验证码的时候,网上也有很多方法进行帮助我们,比如通过百度OCR的接口或者其他平台的开源接口,但是大多数都是收费的,对于我们个人学习,非常不友好,以前小编也分享过,今天小编再介绍一个python的开源库,带带弟弟ocr(ddddocr)

  ddddocr

  Github:https://kgithub.com/sml2h3/ddddocr

  安装:pip install ddddocr

  python要求:<=3.9

  使用方法:

# coding:utf-8
import ddddocr
# 对ddddocr进行实例化
ocr = ddddocr.DdddOcr()
# 读取文件
with open('test.png', 'rb') as f:
    # 读取图片信息
    img_bytes = f.read()
    
# 识别验证码
res = ocr.classification(img_bytes)
print(res)

  通过上述代码可以看出来,使用方法非常简答,我们只需要导入库,读取图片信息,然后就可以进行识别验证码了,非常方面,接下来跟着小编一起来实例操作下。

  实例操作

  网址:https://v3pro.houjiemeishi.com/PC/pages/login/login.html

  操作步骤

  1.访问上述网址通过F12进行获取验证码的地址,然后通过接口请求下载并保存到本地。

1-1.png

  2.调用ddddocr的库,将上述步骤中保存下来的图片进行识别

  3.定位验证码输出框,输入上述步骤中识别到的验证码

  代码操作

# coding:utf-8
import ddddocr
import requests
from selenium import webdriver
ocr = ddddocr.DdddOcr()
driver = webdriver.Chrome()
# 打开网址页面
driver.get('http://v3pro.houjiemeishi.com/PC/pages/login/login.html')
# 获取验证码图片的url地址
img_url = driver.find_element_by_class_name('codeImg').get_attribute('src')
# 通过接口请求url地址,并保存在本地
r = requests.get(img_url)
with open('1111.jpg', 'wb+') as f:  
    f.write(r.content)
# 再次读取图片信息
with open('1111.jpg', 'rb')as f2:
    img_bytes = f2.read()
# 通过ddddocr进行识别验证码
res = ocr.classification(img_bytes)
print('识别的验证码是:'+res)
# 进行输入验证码内容
driver.find_element_by_class_name('ipt2').send_keys(res)

  代码按照步骤书写完成后,进行运行程序,发现验证码输入框,已经输入正确的验证码内容。

1-2.png

  总结

  小编简单的介绍了如何使用ddddocr的方法并通过实例介绍了如何识别验证码的操作,大家可以根据公司的项目进行自行尝试,感谢您的阅读,希望对您有所帮助。



作者:测试安静    

来源:http://www.51testing.com/html/41/n-7795641.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:如何区分前后端 BUG?阿常回答:这个问题我从三方面回答:1、为何要区分前后端 BUG;2、前后端 BUG 各有的特点;3、如何区分前后端 BUG。一、为何要区分前后端 BUG如果是大规模团队、多人开发的系统,测试不能明确到底是谁的 BUG,将 BUG 提交给了错误的开发人员,再加上人都有依赖心理,这个 BUG 就会被当皮球一样踢来踢去,极大增加了沟通成本,影响 BUG 修复时效。二、前后端 BUG 各有的特点前端 BUG:界面相关、布局相关、兼容性相关、交互相关。后端 BUG:业务逻辑相关、性能相关、数据相关、安全性相关。三、如何区分前后端 BUG一)经验法平时工作中多注意积累总结...
            0 0 1239
            分享
          •   项目背景  https://passport.csdn.net/login CSDN登录页面  功能实现  ·自动运行用例  ·自动生成测试报告  ·自动断言与截图  ·自动将最新测试报告发送到指定邮箱  ·数据,页面元素分离  ·PageObject+Unittest+ddt数据驱动用例  ·执行日志、分布式执行  项目架构  浏览器driver定义from common.readFile import ReadFile   from common.logger import Logger   from seleniu...
            7 7 2281
            分享
          •   WhatsApp 正在开发的一项新功能允许让用户使用人工智能生成个人资料照片。WABetaInfo 在最近发布的 WhatsApp 测试版(Android 版 v2.24.11.17)中发现了 AI 配置文件照片功能。  根据该网站分享的该功能的所谓截图,您可以通过向即时通讯应用程序提供文字提示来描述您想要生成的个人照片类型。该功能可以帮助创建独一无二的个性化个人照片,反映个性、兴趣和心情。  该网站指出,与该功能相关的一个好处是,可以在 WhatsApp 上分享人工智能生成的个人资料照片而不是真实照片,这样可以防止坏人滥用。该网站称,人工智能个人资料照片功能目前正在开发中,测试者还无法使...
            0 0 616
            分享
          • 问:你在测试中发现了一个  bug ,但是开发经理认为这不是一个  bug ,你应该怎样解决。首先将问题提交到缺陷管理库里面进行备案。然后要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待测试经理做出最终决定,如果仍然存在争议,...
            2 1 3199
            分享
          •   关键要点  ·由于软件开发过程具有复杂性,所以它很难被理解。  ·正是这种复杂性,导致了许多来源不明的信条和直觉。  ·最近一项对软件开发过程的研究结果挑战了许多普遍持有的观点。  ·一些不太容易理解的研究结果揭示了开发过程中意想不到的力量。  ·在软件开发中,非技术因素对整个项目的影响往往胜过技术因素。  最近,我看到了一项关于项目中所使用的编程语言和代码质量相关性方面的研究。?我非常感兴趣,因为研究结果和我预想的截然相反。一方面,这项研究可能有缺陷,另一方面,许多在软件开发中已确立的实践和信念来源不明。我们遵守这些实践和信念是因为“每个人”都在这样做,或者它们被认为是最佳实践,或者它们...
            11 11 1787
            分享
      • 51testing软件测试圈微信