webdriver——自动化测试验证码问题
2017-12-27 16:09
239 查看
验证码作用
不少网站在用户登录、用户提交信息等登录和输入的页面上使用了验证码技术。验证码技术可以有效防止恶意用户对网站的滥用,使得网站可以有效避免用户信息失窃、保证网站稳定安全性。但是验证码给自动化测试带来一些不便,使脚本无法正常运行覆盖功能模块。
如何解决
1.去掉验证码这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。
2.设置万能码
去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”—设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。
3.验证码识别技术(OCR)
例如可以通过Python-tesseract 来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。
4.记录cookie
通过向浏览器中添加cookie 可以绕过登录的验证码。
基于Cookie绕过验证码自动登录
案例:使用Cookie绕过百度验证码自动登录账户。from selenium import webdriver from time import sleep driver=webdriver.Firefox() driver.get("http://www.baidu.com/") #手动添加cookie(和研发沟通清楚,用什么cookie来验证登陆) #用户id driver.add_cookie({'name':'BAIDUID','value':'(根据实际获取值填写)'}) #存储着用户登录状态的 driver.add_cookie({'name':'BDUSS','value':'根据实际抓包获取值填写'}) sleep(2) driver.refresh() sleep(3) driver.quit()
相关文章推荐
- 【开源自动化测试疑难FAQ】【WebDriver】WebDriver启动时白屏挂起问题解决方法(二)
- Selenium(Webdriver)自动化测试常问问题
- 【开源自动化测试疑难FAQ】【WebDriver】封装GET方法来解决页面跳转不稳定的问题
- 【开源自动化测试疑难FAQ】【WebDriver】WebDriver启动时白屏挂起问题解决方法(一)
- webdriver 验证码问题 selenium_python
- 【开源自动化测试疑难FAQ】【WebDriver】RemoteWebDriver日志问题处理过程
- Selenium Webdriver 自动化测试开发常见问题(C#版)
- Selenium WebDriver 自动化测试截图问题
- 我的webdriver现在的两个问题
- selenium_webdriver 驱动不了浏览器问题
- 转:使用WebDriver过程中遇到的那些问题
- 自动化测试--登录页面验证码问题
- 【开源自动化测试疑难FAQ】【WebDriver】几种类型的组件的判断
- 自动化测试第一课:selenium + webdriver + python 是什么
- 关于watir-webdriver中文乱码问题
- web自动化测试之webdriver下载
- 如何解决WEB性能测试中的验证码问题
- selenium webdriver无法解析为类型的问题
- javaweb首次访问页面 验证码session不同步、不一致问题
- 自动化测试如何解决验证码的问题