测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.19 cookie相关操作

上一篇 / 下一篇  2018-06-12 10:53:04 / 个人分类:Python+Selenium2 WebDriver API

2.19 cookie相关操作

0d;HP)l@4Q}:`F0前言
r$l#q;q$]x0虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。
ZfWy\f9b3@[9L0登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录51Testing软件测试网H9~ kj%RTy
一、获取cookies:get_cookies()51Testing软件测试网1u7h;|M&[gnvK
1.获取cookies方法直接用:get_cookies()51Testing软件测试网Q*mNS^&b
2.先启动浏览器,获取cookies,打印出来发现是空:[]51Testing软件测试网eY ^R aP[
3.打开博客首页后,重新获取cookies,打印出来,就有值了51Testing软件测试网6e c0w,n.T,@K

3{[ G+NJ V051Testing软件测试网gN }L? Fz L1X

!TZm&[4bJi*F^t8l0 

4^o"B\Ic0

vG yWX1M;\0二、登录后的cookies51Testing软件测试网!J|2w'h%]2C0q g
1.先登录博客园(这里登录用自己的账号和密码吧)51Testing软件测试网g+v;Y~&A2};o2`
2.重新获取cookies,发现跟之前获取的不一样了51Testing软件测试网LKl }?#B;\
3.主要是找到这一个cookie,发现它的name和value发生了变化,这就是未登录和已登录的区别了(对比上下两张图)51Testing软件测试网\7D*y C,o
{u'name': u'.CNBlogsCookie', u'value': u'B7813EBA142142CE88CC8C0B33B239F566xxxx'}

j|,h.Fz @^[o|"l051Testing软件测试网 o1TsEzr!{j-{#SW

?&r$e#@PT4z0

F-c"s7N6MU*x3_;Z0三、获取指定name的cookie:driver.get_cookie(name)51Testing软件测试网g`|&cj$G#H
1.获取cookies发现里面有多个cookie,有时候我们只需要其中的一个,把重要的提出来,比如登录的cookie
d`N&q%F"r#f'k02.这里用get_cookie(name),指定对应的cookie的name值就行了,比如博客园的:.CNBlogsCookie51Testing软件测试网 Ox]AU

a!]%B"hl%zE0

;C#b9TC;X0q9z@0

`"C4I]|l"a}%G h6g0四、清除指定cookie:delete_cookie()
o(@1S$l@5P.m01.为了进一步验证上一步获取到的就是登录的cookie,可以删除它看看页面什么变化51Testing软件测试网-G7S4h5c NmY:y z}
2.删除这个cookie后刷新页面,发现刚才的登录已经失效了,变成未登录状态了51Testing软件测试网K t B5}Tz

w v;G-lR%\,ret'\051Testing软件测试网.y/@1w&[p%RMN

W5EV] L0H5U)cM9F0五、清除所有cookies:delete_all_cookies()51Testing软件测试网:GF s8x G7OE
1.清除所有cookies后登录状态也失效了,cookies为空[]51Testing软件测试网;C4S,p4b"ah3L.CC

dS#N` ~)RS0

B Me,X+u.ay0

6[ }6q1_&}eV#NF0六、cookie操作的几个方法
p\;W-sP01.get_cookies():获取所有cookies
U&RY?*F$oC}02.driver.get_cookie(name):获取指定name的cookie:
R2iZLe%kV L E03.清除指定cookie:delete_cookie()
3ovJ Jl:QWp9z},M8O @04.delete_all_cookies():清除所有cookies
T H([HU @05.add_cookie(cookie_dict):添加cookie的值51Testing软件测试网;rD;@]z(b$E
(第五个方法可以用于绕过验证码登录,下篇详细介绍)51Testing软件测试网W'IEo!O;I o

9cDAt&G(iaw%Jr051Testing软件测试网(]Sg9M bo~

9D3Rw] O0 七、参考代码

)Ee7N.EekNB-v)gJ0
复制代码
#coding:utf-8fromseleniumimportwebdriverimporttime
driver=webdriver.Firefox()#启动浏览器后获取cookiesprintdriver.get_cookies()
driver.get("http://www.cnblogs.com/yoyoketang/")#打开主页后获取cookiesprintdriver.get_cookies()#登录后获取cookiesurl ="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)printdriver.get_cookies()#获取指定name的cookieprintdriver.get_cookie(name=".CNBlogsCookie")#清除指定name的cookiedriver.delete_cookie(name=".CNBlogsCookie")printdriver.get_cookies()#为了验证此cookie是登录的,可以删除后刷新页面driver.refresh()#清除所有的cookiedriver.delete_all_cookies()printdriver.get_cookies()
复制代码

TAG:

 

评分:0

我来说两句

Open Toolbar