代码改变世界

自动化测试 -- 通过Cookie跳过登录验证码

2017-02-22 23:08  虫师  阅读(41923)  评论(25编辑  收藏  举报

之前写过一篇博客:自动化测试如何解决验证码的问题

介绍了验证码的几种处理方式,最后一种就是通过Cookie跳转过验证码,但讲的不够详细。今天,就详细的介绍一下这种方式。

 

准备工具:

------------------

fiddler

Python+selenium

------------------

以百度登录为例。

验证码是汉字的,我想通过程序识别起来有点难度,也会比较麻烦。

 

接下来开始动手。

1、开启Fiddler 工具,像这样!

 

2、通过浏览器登录正常登录百度账号。像这样!

 

3、通过Fiddler获取登录请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie

然后,找到重要的两个参数BAIDUID”和“BDUSS”。

 

4、编写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信息。

最后,刷新页面,现在已经是登录状态了,获取登录之后的用户名并打印。

 

Web Page Counters
Computer Desks