Selenium登录验证码解决方案细解

#大牛测试,专注测试技术
#qq:2574674466
#简简单单自动化测试

在网站中加入验证码的目的是加强用户安全性和提高反爬虫机制,在登录网站时,经常遇到各种各样验证码如:

1) 英文与数字结合

 2)  汉字

3) 图形,如12306登录

等等,因验证码的存在,对自动化测试工具造成极大困扰

有困难,但还是要解决的........

以下列出一些处理策略

1)调用OCR识别:

       优势:开源

       劣势:识别率低

    步骤、tesseract 安装

   #

#pip install pytesseract

 如:识别以下数字

#大牛测试,专注测试技术
#qq:2574674466
#简简单单自动化测试
from PIL import Image
from pytesseract import pytesseract
#使用PIL打开图片
im = Image.open("t.PNG")
code = pytesseract.image_to_string(im)
print(code)

 识别英文字母与数字

 

经测试以上验证码,失败:

  综以上可见:准确率不是太高

2)调用API使用第三方平台识别验证码

    本篇以斐斐打码平台作一介绍

    ①  登录“斐斐”官网 注册

  http://www.fateadm.com/

  ②打开用户中心 进行充值,充值后会获得相应积分,每次失败会扣除积分

充值中心,学习用,仅需充值1分钱便好。

  ③ 记住PD账号与PD秘钥

  ④计费标准模组,根据要识别的内容选择类型

 如 4为英数混合 选择  30400

⑤http://docs.fateadm.com/web/#/1?page_id=17  下载python api

⑥找到TestFunc()方法,作以下修改

#大牛测试,专注测试技术
#qq:2574674466
#简简单单自动化测试
def TestFunc():
    pd_id           = ""     #用户中心页可以查询到pd信息
    pd_key          = ""
    app_id          = "100001"     #开发者分成用的账号,在开发者中心可以查询到
    app_key         = "123456"
    #识别类型,
    #具体类型可以查看官方网站的价格页选择具体的类型,不清楚类型的,可以咨询客服
    pred_type       = "30400"
    api             = FateadmApi(app_id, app_key, pd_id, pd_key)
    # 查询余额
   #balance         = api.QueryBalcExtend()   # 直接返余额
    #api.PredictExtend()
    # api.QueryBalc()

    # 通过文件形式识别:
    file_name       = “t.png"
    result =  api.PredictFromFileExtend(pred_type,file_name)   # 直接返回识别结果
    #print(result)
    return  result

如识别如下验证码:

 运行结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大牛测试

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值