python自动识别验证码,python自动化测试图片验证码

  python自动识别验证码,python自动化测试图片验证码

  本文介绍了python自动测试破解图文验证码的解决方案,并通过实例代码进行了详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

  对于web应用,出于安全考虑,登录时总是设置验证码。

  验证码有很多种,比如识别图片中的数字和字母的,点击图片中指定文字的,有算术计算结果的。更复杂的是滑动验证。

  这样的验证码增加了我们系统的安全性,但是对于我们的测试人员来说,无疑是自动化测试过程中的一个棘手问题。

  

1、Web 自动化验证码解决方案

  一般在我们的测试过程中,当登录遇到上述验证码时,有以下几种解决方法:

  首先让开发者去掉第二个验证码,设置一个通用的验证码第三个,通过cookie绕过登录第四个,通过自动识别技术识别验证码

2、验证码解决方案

  #编码:utf-8

  导入操作系统

  导入子流程

  从PIL进口图片

  def get_captcha(驱动,captcha_id,full_screen_img_path,captcha_img_path,captcha_final_path,txt_path,ocr_path):

  #浏览器界面截图

  driver.save _截图(full_screen_img_path)

  #找到验证码图片并获取其坐标

  element=driver . find _ element _ by _ id

  left=element.location[x]

  top=element.location[y]

  right=element . location[ x ]element . size[ width ]

  bottom=element . location[ y ]element . size[ height ]

  left,top,right,bottom=int(左),int(上),int(右),int(下)

  img=Image.open(全屏_ img _路径)

  img=img.crop((左,上,右,下))

  #获取验证码图片

  img.save(验证码_ img _路径)

  #打开验证码图片

  img=image . open(captcha _ img _ path)

  #颜色直方图,255种颜色,255种白色。

  #创建一张新图片(大小与原图片相同,背景色为255白色)

  img_new=Image.new(P ,img.size,255)

  对于范围内的x(img . size[1]):

  对于范围(img.size[0]):内的y

  #遍历图片的xy坐标像素颜色

  pix=img.getpixel((y,x))

  #打印(像素)

  #给自己上色,r=0,g=0,b0是蓝色

  如果pix[0] 20和pix[1] 20和pix[2] 50:

  #把遍历结果放到新图片上,0为透明不透明。

  img_new.putpixel((y,x),0)

  img _ new . save(captcha _ final _ path,format=png )

  #通过tesseract工具解析验证码图片生成文本。

  os.system(ocr_path)

  #读取txt文件中的验证码

  用open(txt_path, r )作为f:

  if f.read():

  t=f.read()。条状()

  #删除中间的空格

  如果t:中的“”

  t=t.replace( ,)

  如果t.isdigit()和len(t)==4:

  返回t

  else:

  返回“失败”

  def check_resp(结果,消息):

  如果结果中有消息:

  返回“通过”

  else:

  返回“失败”

  #接口识别验证码

  def get_captcha(验证码_ img _路径,验证码_最终_路径,txt _路径,ocr _路径):

  #打开验证码图片

  img=image . open(captcha _ img _ path)

  #创建一张新图片(大小与原图片相同,背景色为255白色)

  img_new=Image.new(P ,img.size,55)

  对于范围内的x(img . size[1]):

  对于范围(img.size[0]):内的y

  #遍历图片的xy坐标像素颜色

  pix=img.getpixel((y,x))

  #打印(像素)

  #给自己上色,r=0,g=0,b0是蓝色

  如果pix[0] 20和pix[1] 20和pix[2] 50:

  #把遍历结果放到新图片上,0为透明不透明。

  img_new.putpixel((y,x),0)

  img _ new . save(captcha _ final _ path,format=png )

  #通过tesseract工具解析验证码图片生成文本。【Tesseract-OCR必须和jpg的根目录相同,比如驱动器C和驱动器D!】

  os.system(ocr_path)

  #读取txt文件中的验证码

  用open(txt_path, r )作为f:

  if r.read():

  t=f.read()。条状()

  #删除中间的空格

  如果t:中的“”

  t=t.replace( ,)

  #如果是数字,长度为4,则返回数字,否则返回fail

  如果t.isdigit()和len(t)==4:

  返回t

  else:

  返回失败

  关于python破解图形验证码的这篇文章到此结束。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • qq短信验证码发送失败怎么回事,qq验证码失败是怎么回事
  • ,,使用阿里大于(大鱼)平台进行发送手机验证码的流程
  • ,,SpringSceurity实现短信验证码登陆
  • android读取短信验证码,
  • android读取短信验证码,,Android使用MobSDK短信验证
  • android自动获取短信验证码功能在哪,安卓自动获取短信验证码
  • android自动获取短信验证码功能在哪,android自动获取短信验证码功能失效,Android自动获取短信验证码功能
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现,Android实现短信验证码自动填写功能
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码,Android如何通过手机自动获取短信验证码
  • ,,python网络爬虫实现发送短信验证码的方法
  • ,,Python实现滑块拼图验证码详解
  • ,,python3 破解 geetest(极验)的滑块验证码功能
  • 发验证码不在桌面显示,验证码能收到桌面上不显示怎么回事
  • 留言与评论(共有 条评论)
       
    验证码: