一.去掉验证码

这是最简单的解决方案, 对于开发人员来说, 只是将验证码的相关代码注释掉就行, 但这种方案只能在测试环境下进行, 在线上环境下会对系统产生一定的风险.

二.设置万能验证码

去掉验证码会产生安全问题, 线上系统的安全性很重要不能忽略, 这时我们可以采用不取消验证码, 而是在程序代码中留一个"后门" 也就是预留一个万能的验证码, 只要输入这个固定的万能验证码, 则认为验证通过.

三.验证码识别技术

步骤1: 安装识别验证码需要的python库
pip install pillow
pip install pytesseract
步骤2: 通过代码识别图片尺寸并获取识别后的验证码
from io import BytesIO
from PIL import Image
import pytesseract
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('http://localhost/index.php/Home/user/login.html')
# 保存页面
scree = driver.get_screenshot_as_png()
# 定位图片
img = driver.find_element(By.ID, 'verify_code_img')
# 输出图片 及尺寸大小
print(img.location, img.size)
location = img.location #图片坐标轴
size = img.size # 图片大小
left = location['x'] # x轴
top = location['y'] # y轴
right = size['width'] + left # 宽度
bottom = size['height'] + top # 高度
verify_img = Image.open(BytesIO(scree)).crop((left,top,right,bottom))
verify_img.save('verify_img.png')
image1 = Image.open('verify_img.png')
text = pytesseract.image_to_string(image1)
print(text)

识别技术成功率一般低于30%, 仍然需要不断的进行优化和练习才能够提升.

四.记录cookie

以BaiDu为案例:

步骤1: 通过浏览器登录正常的百度账号, 如下图:

步骤2: 使用抓包工具或者打开浏览器的开发者工具栏,找到Application中的Cookies选项:

找到最最重要的两个数据: “BAIDUID” “BDUSS”

步骤3:

编写自动化测试脚本, 跳过登录
from time import sleep
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com")# 添加Cookie
driver.add_cookie({'name':'BAIDUID','value':'1699E29FCB27B74AE688991269EE7212:FG=1'})
driver.add_cookie({'name':'BDUSS','value':'FZTndRRnBlSjNMQUZsNzNPSzdCZnp0MU83TX5lLU9XaDJrdHloTS1odWpJcDlpRVFBQUFBJCQAAAAAAAAAAAEAAADv1Oew0rvT79K7yMvJ-s7eu9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOVd2KjlXdiOH'})# 刷新页面
driver.refresh()
sleep(5)
#关闭浏览器
driver.quit()

刷新浏览器,显示已登录效果:

使用cookie进行登录绕过的最大难点是如何来获取用户的cookie相关数据, 最重要的是 name和key这两个参数.

我们可以通过selenium中的 driver.get_cookies()方法来获取, 数据为 [{“key1”:“value1”},{“key2”:“value2”}…] 列表嵌套字典格式,先对列表数据进行遍历,再来进一步确认需要使用的数据.

最后:

最简单安全行之有效的方式就是设置万能验证码, 当然愿意在技术方向更进一步的同学, 也可以通过验证码识别来实现.

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

自动化测试难题,验证码如何解决相关推荐

  1. 自动化测试--20验证码识别

    1.验证码的目的:就是为阻止通过代码自动登录 2.验证码的解决方法: 1)通过第三方工具识别验证码 2)通过第三方网站识别验证码-人工识别 3)通过万能验证码的方式-为了做自动化测试 4)可以屏蔽掉验 ...

  2. WhatsApp收不到验证码怎么解决呢?华为手机| 安卓手机| 苹果手机

    WhatsApp收不到验证码,神烦,尝试多次后,发现还是不行.把 致电给我 的那个按钮入口,都尝试地没了.还是搞不好. 我瞎乱折腾一通之后,致电给我  的按钮都消失了 自己尝试的解决方法 1. 打电话 ...

  3. 搭建网校系统,既能解决疫情下教育培训难题,也解决了企业办公问题

    现如今,不再是只想着解决温饱的时代,物质条件不断满足的同时,人们也想得到精神方面的寄托.于是疯狂报瑜伽课,报舞蹈班,插花艺术等来满足自己精神层面的需求,不断提高自己,让我国的培训业进入了一个快速发展的 ...

  4. 不能显示验证码的解决办法

    现在的很多的游戏.文章.帖子等在打开时,要求输入验证码,可是有些时候验证码显示不出来,今天我就来告诉大家几种不能显示验证码的解决办法. 网页上的验证码一般采用两种图片格式: 一..xbm图片 (不过因 ...

  5. MeEdu-Admin管理端部署不显示验证码如何解决?

    MeEdu-Admin管理端部署不显示验证码如何解决? 出现以下情况如何解决? 1.登录面板,找到你搭建的MeEdu_API站点,开启以下ThlinkPHP伪静态 2.MeEduAdmin伪静态规则如 ...

  6. 淘宝滑块验证码的解决方法 和 接口

    采集淘宝商品详情遇到滑块验证码的解决方法 最近更新时间:2019年11月25日,*大家都知道,淘宝的反爬虫机制十分严,而很多时候,没办法高效的拿到数据内容响应终端需求,而依赖爬虫就会造成动不动就出现滑 ...

  7. 迅歌点歌系统服务器过期或不信任怎么办,酷狗音乐验证码失效解决方法 酷狗音乐验证码失效怎么回事...

    酷狗音乐是一款很多伙伴都在用听歌软件,这款软件从旧版本到最新版本已经有很久的记录了,现在还有用户注册登录这款软件,但是发送的验证码都是失效,想知道怎么解决,需要的伙伴不要错过哦! 酷狗音乐验证码失效怎 ...

  8. 快速获取容器VIPs,解决集群自动化测试难题

    出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五晚6点10分  与您不见不散 说在前面 要想使用容器集群来启动自动化测试,那么我们就必须要了解容器的 VIPs .我一直在 ...

  9. 【实战演练】快速获取容器VIPs,解决集群自动化测试难题

    项目背景介绍 要想使用容器集群来启动自动化测试,那么我们就必须要了解容器的 VIPs .文章作者 Marcos Tenrero 一直在尝试使用 Docker 内部的服务发现功能来识别在 Docker ...

最新文章

  1. 方差分析(Analysis of Variance,ANOVA)是什么?方差分析的形式有哪些?
  2. 新建idea加入的一句话,键值对
  3. 八十四、SpringBoot微服务Dubbo和Zookeeper分布式
  4. 10个你必须知道的Python内置函数
  5. 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
  6. RDD的几种创建方式
  7. 《对不队》团队项目用户验收评审
  8. 作者:赵国栋(1974-),男,中关村大数据产业联盟秘书长,北京大数据研究院副院长...
  9. ECCV 2020 | 自监督任务辅助的知识蒸馏
  10. 华为Mate 30 Pro前面板曝光:双曲面设计 几乎全是屏
  11. Python Logging Handler
  12. error) DENIED Redis is running in protected mode because protected mode is enabled报错
  13. python基础二:函数
  14. java计算机毕业设计销售人员绩效管理系统源码+系统+数据库+lw文档(1)
  15. python在冒号处显示语法错误_python for常见语法错误
  16. C语言新手入门成长帖(1)
  17. u深度u盘制作与装系统教程
  18. IOS逆向-动态调试
  19. oracle 去空格函数未生效,发现ASCII值为49824的字符
  20. 基于微信电影播放小程序系统设计与实现 开题报告

热门文章

  1. 吴孟达版《高等工程数学》第四章+matlab实践
  2. Find_in_set()函数的使用及in()用法详解
  3. 去掉goland中间的令人烦躁的竖线
  4. python输入一组数据找出被七除余一的数_C程序设计实验-1-7.doc
  5. 在线查字典/汉语字典大全/字典查询网站源码开发搭建
  6. ajax img src如何索引,使用jQuery的ajax方法作为blob检索图像
  7. CHERRY G80-8113 软硬编程教程
  8. 【图文教程】虚拟机VMware16 windows系统下载安装
  9. 数据库分析之逻辑结构设计
  10. 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)