有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的。webdriver 可以读取、添加和删除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 信息

通过webdriver 操作cookie 是一件非常有意思的事儿,有时候我们需要了解浏览器中是否存在了某个cookie 信息,webdriver 可以帮助我们读取、添加,删除cookie 信息。

1)打印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()

运行打印信息:

[{u'domain': u'.youdao.com', u'secure': False, u'value':
u'aGFzbG9nZ2VkPXRydWU=', u'expiry': 1408430390.991375, u'path': u'/',
u'name': u'_PREF_ANONYUSER__MYTH'}, {u'domain': u'.youdao.com', u'secure':
False, u'value': u'[email protected]', u'expiry':
2322974390.991376, u'path': u'/', u'name': u'OUTFOX_SEARCH_USER_ID'},
{u'path': u'/', u'domain': u'www.youdao.com', u'name': u'JSESSIONID',
u'value': u'abcUX9zdw0minadIhtvcu', u'secure': False}]

2)对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-bbbb'})

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

##### 下面可以通过两种方式删除cookie #####

# 删除一个特定的cookie
driver.delete_cookie("CookieName")

# 删除所有cookie
driver.delete_all_cookies()

time.sleep(2)

driver.close()

运行打印信息:

YOUDAO_MOBILE_ACCESS_TYPE -> 1
_PREF_ANONYUSER__MYTH -> aGFzbG9nZ2VkPXRydWU=
OUTFOX_SEARCH_USER_ID -> [email protected]
JSESSIONID -> abc7qSE_SBGsVgnVLBvcu
key-aaaaaaa -> value-bbbb #     这一条是我们自己添加的

05-08 08:12