首页 > 其他 > 详细

Selenium(十五)cookie

时间:2019-03-20 12:27:22      阅读:79      评论:0      收藏:0      [点我收藏+]

有时候我们需要验证浏览器中是否存在某个 cookie,因为基于真实的 cookie 的测试是无法通过集成测试完成的。WebDriver 提供了操作 Cookie 的相关方法可以读取、添加和删除 cookie。

webdriver 操作 cookie 的方法有:

get_cookies()                  获得所有 cookie 信息
get_cookie(name)               返回有特定 name 值有 cookie 信息
add_cookie(cookie_dict)        添加 cookie,必须有 name 和 value 值
delete_cookie(name)            删除特定(部分)的 cookie 信息
delete_all_cookies()           删除所有 cookie 信息

 

#coding=utf-8
from selenium import webdriver
import time
driver
= webdriver.Chrome() driver.get("http://www.youdao.com")
# 获得 cookie 信息 cookie= driver.get_cookies()
#将获得 cookie 的信息打印 print (cookie)
driver.quit()

打印结果:

技术分享图片

 

通过打印结果可以看出,cookie 是以字典的形式进行存放的,知道了 cookie 的存放形式,那么我们就可以按照这种形式向浏览器中写入 cookie 信息。

#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.youdao.com")


#向 cookie 的 name 和 value 添加会话信息。
driver.add_cookie({name:key-aaaaaaa, value:value-bbbbbb})

#遍历 cookies 中的 name 和 value 信息打印,当然还有上面添加的信息
for cookie in driver.get_cookies():
    print (%s -> %s % (cookie[name], cookie[value]))

driver.quit()

打印结果:

技术分享图片

 

从打印结果可以看到最后一条 cookie 信息是在脚本执行过程中通过 add_cookie()方法添加的。通过遍历得到的所 cookie 信息从而找到 key 为“name”和“value”的特定 cookie 的 value。

那么在什么情况下会用到 cookie 的操作呢?例如开发人员开发一个功能,当用户登录后,会将用户的用户名写入浏览器 cookie,指定的 key 为“username”,那么我们就可以通过 get_cookies() 找到 useranme,

打印 vlaue,如果找不到 username 或对应的 value 为空,那么说明保存浏览器的 cookie 是有问题的。


delete_cookie() 和 delete_all_cookies() 的使用也很简单,前者通过 name 值到一个特定的 cookie 将其删除,后者直接删除浏览器中的所有 cookies()信息。

 

Selenium(十五)cookie

原文:https://www.cnblogs.com/dydxw/p/10564040.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!