2.19 cookie相关操作

2.19 cookie相关操作

前言
虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。
登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录
一、获取cookies:get_cookies()
1.获取cookies方法直接用:get_cookies()
2.先启动浏览器,获取cookies,打印出来发现是空:[]
3.打开博客首页后,重新获取cookies,打印出来,就有值了

二、登录后的cookies
1.先登录博客园(这里登录用自己的账号和密码吧)
2.重新获取cookies,发现跟之前获取的不一样了
3.主要是找到这一个cookie,发现它的name和value发生了变化,这就是未登录和已登录的区别了(对比上下两张图)
{u'name': u'.CNBlogsCookie', u'value': u'B7813EBA142142CE88CC8C0B33B239F566xxxx'}

三、获取指定name的cookie:driver.get_cookie(name)
1.获取cookies发现里面有多个cookie,有时候我们只需要其中的一个,把重要的提出来,比如登录的cookie
2.这里用get_cookie(name),指定对应的cookie的name值就行了,比如博客园的:.CNBlogsCookie

四、清除指定cookie:delete_cookie()
1.为了进一步验证上一步获取到的就是登录的cookie,可以删除它看看页面什么变化
2.删除这个cookie后刷新页面,发现刚才的登录已经失效了,变成未登录状态了

五、清除所有cookies:delete_all_cookies()
1.清除所有cookies后登录状态也失效了,cookies为空[]

六、cookie操作的几个方法
1.get_cookies():获取所有cookies
2.driver.get_cookie(name):获取指定name的cookie:
3.清除指定cookie:delete_cookie()
4.delete_all_cookies():清除所有cookies
5.add_cookie(cookie_dict):添加cookie的值
(第五个方法可以用于绕过验证码登录,下篇详细介绍)

 七、参考代码

复制代码
# coding:utf-8
from selenium import webdriver
import time driver = webdriver.Firefox() # 启动浏览器后获取cookies print driver.get_cookies() driver.get("http://www.cnblogs.com/yoyoketang/") # 打开主页后获取cookies print driver.get_cookies() # 登录后获取cookies url = "https://passport.cnblogs.com/user/signin" driver.get(url) driver.implicitly_wait(30) driver.find_element_by_id("input1").send_keys(u"上海-悠悠") driver.find_element_by_id("input2").send_keys(u"xxx") driver.find_element_by_id("signin").click() time.sleep(3) print driver.get_cookies() # 获取指定name的cookie print driver.get_cookie(name=".CNBlogsCookie") # 清除指定name的cookie driver.delete_cookie(name=".CNBlogsCookie") print driver.get_cookies() # 为了验证此cookie是登录的,可以删除后刷新页面 driver.refresh() # 清除所有的cookie driver.delete_all_cookies() print driver.get_cookies()
复制代码

猜你喜欢

转载自www.cnblogs.com/lunvo/p/9183064.html
今日推荐