Selenium 添加访问 cookie 实现自动登录

前言:

有时需要在 webDriver 访问网站时,附带 cookie 实现免登陆访问,以下是一个简单的实现方式。

登录并保存 cookie

1
2
3
4
5
6
7
8
9
'''
前面部分代码用于填写登录信息并登录
'''
# 获取cookie并通过json模块将dict转化成str
dictCookies = self.browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
# 登录完成后,将cookie保存到本地文件
with open('cookies.json', 'w') as f:
f.write(jsonCookies)

读取 cookie 实现免登陆访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 初次建立连接,随后方可修改cookie
self.browser.get('http://xxxx.com')
# 删除第一次建立连接时的cookie
self.browser.delete_all_cookies()
# 读取登录时存储到本地的cookie
with open('cookies.json', 'r', encoding='utf-8') as f:
listCookies = json.loads(f.read())
for cookie in listCookies:
self.browser.add_cookie({
'domain': '.xxxx.com', # 此处xxx.com前,需要带点
'name': cookie['name'],
'value': cookie['value'],
'path': '/',
'expires': None
})
# 再次访问页面,便可实现免登陆访问
self.browser.get('http://xxx.com')