Selenium(十五)cookie

有时候我们需要验证浏览器中是否存在某个 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()信息。

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