selenium自动化测试:验证码处理!_selenium自动化debug模式启动浏览器解决验证码问题

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负众望。谢谢!!!

1.前提

基于win10专业版64位系统+64位jdk1.8+64位python3.6.5+社区版pycharm2018.1.3+unittest+selenium3.141.0。

2.验证码处理

目前大家在访问很多网站的时候,尤其登录页面可能都会有要求输入验证码的校验,其目的就是为了识别是人还是机器在操作,从而增强系统的安全性。

验证码的种类有很多,比如:纯数字验证码,纯字母验证码,数字+字母验证码,汉字验证码,图片验证码,拼图验证码等等。无论哪种,我们在做自动化测试时,如何解决验证码的校验问题呢?

1)屏蔽验证码

直接找负责对应模块的开发或者让你的领导找对方,要求其在内部测试环境先临时屏蔽验证码(即去掉验证码的校验),不用输入验证码即可登录。注意再正式上线的时候一定要记得恢复该功能,比如在BUG库里以一个问题单来跟踪,否则会有安全风险。

2)万能验证码

这种方式与上面的方式类似,还是找开发人员来处理,加个判断差不多两行代码就搞定了,比如输入1111可以始终校验通过。相对第一种处理方式能好一些,因为有验证码校验,输入正确的验证码或者输入1111的验证码都可以校验通过,安全性稍微高一些,但在上线的时候也需要去掉万能验证码哦。

3)OCR图像识别

比较麻烦的一种方式,需要额外安装一些工具,用代码来识别验证码图片中的正确字符,然后输入验证码输入框完成输入校验。存在一定的误差和效率的问题,如果是自己公司内部的产品,做自动化测试时不建议使用此种方式,有那个研究的时间多去完善下别的模块的测试脚本。如有兴趣可参考下方我的另外一篇文章(当前仅支持简单的图片文字识别):

4)添加cookie

假设一个登陆界面,有用户名、密码和验证码三个输入框和一个登陆按钮,webdriver打开页面时不做任何登陆输入,而是直接将登陆的用户名和密码信息直接用代码添加到浏览器对象的cookie中,无序输入验证码,然后刷新下页面即可自动完成登录。原理是什么呢?就是比如你正常登录一个网站,然后直接关闭浏览器,再次打开浏览器你会发现访问同一页面会自动登录了,并不需要你再次登录。为什么呢?因为用到了cookie或者session缓存机制,有效期内,无需用户再次登录。

参考代码:

from selenium import webdriver
dr = webdriver.Chrome()
dr.get("http://qzx:8080/Test1.4/")
dr.add_cookie({'name':'username','value':'admin'})#添加用户名cookie
dr.add_cookie({'name':'password','value':'admin'})#添加密码cookie
# dr.get("http://qzx:8080/Test1.4/")#再次打开同一页面会自动登录
dr.refresh()#刷新页面会自动登录

注:该方法不是万能的,仅适用于使用cookie将用户登录信息保存在本地的一些系统,使用session将用户登录信息保存在远端服务器上的系统时不行的哦。

5)打码平台

将验证码图片发给第三方的平台,来帮你识别。不常用,略。

6)其它方式

总结:关于自动化测试时的验证码处理方式其实有很多,建议大家使用上面第二种(即万能验证码)的方式,有限保证安全性的同时有确保了验证功能的完整性,比如你做自动化测试使用完成验证码实现脚本,别的手工测试人员继续使用页面上显示的验证码,正确手工输入测试即可,互不影响。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化的资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值