自动化测试使用cookie跳过验证码

准备工具:


fiddler

Python+selenium

安装fidder

fidder官方下载地址
fidder首次安装需要设置才能抓取https参考如下
fidder设置抓取https

开始

1、打开fidder

2、通过浏览器登录正常登录百度账号。像这样!
这里写图片描述

3、查看Fiddler获取到的登录请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie。为什么是这两个?(试的<->)


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

4、编写Selenium自动化测试脚本,跳过登录。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

# 添加Cookie
driver.add_cookie({'name':'BAIDUID','value':'6FC26726C46E744593310AA7515:FG=1'})
driver.add_cookie({'name':'BDUSS','value':'5OYWFSdFJBeTlBMHVGVnhvLWZlUFQ5YUhKN0c3cll5LUhiMUlPYk1RcHNYMGxiQVFBQUFBJCQAAAAAAAAAAAEAAAB2gOWut9y2t7XE0KHQocTxNjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'})

# 刷新页面
driver.refresh()
sleep(5)

# 获取登录用户名并打印
username = driver.find_element_by_class_name("user-name").text
print(username)

#关闭浏览器
driver.quit()

首先,访问百度首页,处于未登录状态。

然后,通过Selenium所提供add_cookie()方法添加Cookie信息。

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

注意:如果是首次抓取https请求不要忘了按照fidder设置抓取https中的方法添加证书,不然fidder是抓取不到cookie的,如下图

猜你喜欢

转载自blog.csdn.net/zha6476003/article/details/80689734
今日推荐