以前写过一篇博客:自动化测试如何解决验证码的问题。html
介绍了验证码的几种处理方式,最后一种就是经过Cookie跳转过验证码,但讲的不够详细。今天,就详细的介绍一下这种方式。web
准备工具:浏览器
------------------cookie
fiddler工具
Python+selenium测试
------------------ui
以百度登陆为例。spa
验证码是汉字的,我想经过程序识别起来有点难度,也会比较麻烦。code
接下来开始动手。htm
一、开启Fiddler 工具,像这样!
二、经过浏览器登陆正常登陆百度帐号。像这样!
三、经过Fiddler获取登陆请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie。
而后,找到重要的两个参数“BAIDUID”和“BDUSS”。
四、编写Selenium自动化测试脚本,跳过登陆。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 添加Cookie driver.add_cookie({'name':'BAIDUID','value':'AAAAAAAAAAAAAA:FG=1'}) driver.add_cookie({'name':'BDUSS','value':'AAAAAAAAAAAAAAAAAAAAAAAAAA'}) # 刷新页面 driver.refresh() # 获取登陆用户名并打印 username = driver.find_element_by_class_name("user-name").text print(username) #关闭浏览器 driver.quit()
首先,访问百度首页,处于未登陆状态。
而后,经过Selenium所提供add_cookie()方法添加Cookie信息。
最后,刷新页面,如今已是登陆状态了,获取登陆以后的用户名并打印。