python执行web自动化测试中,如何绕过cookie
原理:http协议是无状态的,协议可以随便请求/访问,但是服务器不能识别具体是谁再请求服务端,不会自动保存浏览记录,为了解决这一问题,需要通过session和cookie的验证,才能识别用户,作用就是通过缓存,验证用户登陆状态的,所以,它的原理是在用户登录成功之后,通过cookie劫持,确保浏览器缓存的cookie是成功登录之后的,再次请求的时候就可以把cookie的值作为传参数据直接传进去。
以哔哩哔哩的网站登录为实例具体步骤:
- 手动登录获取cookie值
from selenium import webdriver
driver = webdriver.Chrom(驱动路径)
driver.get(“http://www.bilibili.com/”)
手动登录获取cookie值
time.sleep() #等待手动登录执行的步骤
调用方法,获取cookie值
driver.get.cookies()
打印出获取到的cookie值
print(driver.get.cookies())
可在终端区域查看cookie值(数组格式),复制并格式化cookie
cookie = [] #[] 是打印cookie的所有值
删除带有有效期的键值对 #expiry:122333
2. 删除原有的cookie,然后把登录之后的cookie一起发给服务器
driver.delete_all_cookie() #删掉原有的cookie,因为请求了之后,再次去执行登录操作,都武器就会提供一个没有没有登陆状态的cookie
for c in cookie: #循环之前获取到的变量cookie,并赋值变量c
driver.add_cookie© #把c变量的值添加到cookie中
driver.refresh() #刷新
注:此时就可以把成功登陆后的cookie状态一起发到服务器端