cookie管理
cookie原理
对于页面来说,正常我们输入用户名和密码后,服务端会生成对应的token或者session,随着接口返回token和session,页面将数据保存在cookie中
cookie应用场景
对于有些页面进行登录除了需要输入用户名和密码外还需要进行滑块验证等,这就能体现出cookie的好处了
cookie的方法
在了解cookie的原理后,我们知道登录后我们客户端会生成cookie保存用户信息,所以我们在selenium的方法中就有我们的get_cookies方法进行cookie的信息获取,等打开新页面后我们要实现登录,只要把对应cookie添加到浏览器中即可,所以有我们的add_cookie方法
实例
以我们博客园1为例
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
driver.find_element(By.LINK_TEXT,'登录').click()
time.sleep(20)
#获取登录后的cookie信息并保存在list变量中
list = driver.get_cookies()
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
#清除新打开浏览器的所有cookie信息
driver.delete_all_cookies()
for i in list:
#增加过期时间的判断防止添加过程中出现失效情况
if 'expiry' in i:
del i['expiry']
#正常我们操作只需要传入name和value即可
driver.add_cookie(i)
driver.refresh()
print ("#######################################")
print (driver.get_cookies())
time.sleep(10)
PS:配套视频大家可以查看:https://space.bilibili.com/432730836/
博客园这个比较特殊,正常我们在页面操作过程中只需要传入name和value值就好了,但是博客园不行需要除了expiry字段外所有的信息都要传入,否则无法登录,所以我们要在一种方法不行的情况下多尝试一下其他方法 ↩︎