有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和
集成测试完成的。WebDriver 提供了操作Cookie 的相关方法可以读取、添加和删除cookie 信息。
WebDriver 操作cookie 的方法有:
 getCookies() 获得所有cookie 信息
 addCookie(cookie_dict) 添加cookie,必须有name 和value 值
 deleteAllCookies() 删除所有cookie 信息
 deleteCookieNamed(String name)。删除name 这个cookie
 getCookieNamed(String name)。返回特定name 的cookie 值

下面通过getCookies()来获取当前浏览器的cookie 信息。

package com.mypro.jase;
import java.util.Set;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class cookie {
public static void main(String[] args){
WebDriver driver = new ChromeDriver();
driver.get("http://www.youdao.com");
//获得cookie
Set<Cookie> coo = driver.manage().getCookies();
//打印cookie
System.out.println(coo);
driver.quit();
}
}

执行结果:

>>> ================================ RESTART ================================
>>>
[JSESSIONID=abc6Pheyjzl7M_fdLPy3u;
path=/;
domain=www.youdao.com,
OUTFOX_SEARCH_USER_ID=-1975491366@183.61.23.26;
expires=星期四, 01 六月2045 10:08:10 CST;
path=/;
domain=.youdao.com]

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

import java.util.Set;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; public class cookie {
public static void main(String[] args){
WebDriver driver = new ChromeDriver();
driver.get("http://www.youdao.com");
Cookie c1 = new Cookie("name", "key-aaaaaaa");
Cookie c2 = new Cookie("value", "value-bbbbbb");
driver.manage().addCookie(c1);
driver.manage().addCookie(c2);
//删除所有cookie
driver.manage().deleteAllCookies();
//获得cookie
Set<Cookie> coo = driver.manage().getCookies();
//打印cookie
System.out.println(coo);
driver.quit();
}
}

执行结果:
>>> ================================ RESTART ================================
>>>
[name=key-aaaaaaa;
path=/;
domain=www.youdao.com,
value=value-bbbbbb;
path=/;
domain=www.youdao.com]

从打印结果可以看到最后一条cookie 信息是在脚本执行过程中通过addCookie()方法添加的。通过遍
历得到的所cookie 信息从而找到key 为“name”和“value”的特定cookie 的value。
那么在什么情况下会用到cookie 的操作呢?例如开发人员开发一个功能,当用户登录后,会将用户的
用户名写入浏览器cookie,指定的key 为“username”,那么我们就可以通过getCookies() 找到useranme,
打印vlaue,如果找不到username 或对应的value 为空,那么说明保存浏览器的cookie 是有问题的。
deleteAllCookies()的使用也很简单,前者通过name 值到一个特定的cookie 将其删除,后者直接删除浏览器中的所有cookies()信息。

最新文章

  1. QT特供 CGAL配置流程(基于QT5+VS2015)
  2. Linux系统软件
  3. Unity3D shader脚本
  4. imx6 uboot lvds clock
  5. Android开发面试经——3.常见Java基础笔试题
  6. VCL设计方法概论(自己总结了9条),以及10个值得研究的控件 good
  7. ios状态栏调整 简单动画的知识点
  8. picasso_强大的Android图片下载缓存库
  9. erlang mnesia 数据库查询
  10. android开发
  11. oracle 使用 decode函数 或 case when 实现行转列
  12. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载-2)
  13. git和github的重要性
  14. 记录我发现的第一个关于 Google 的 Bug
  15. Python 中的 if __name__ == &#39;__main__&#39; 该如何理解
  16. 【并发编程】ThreadPoolExecutor参数详解
  17. Windows下比较简单的获取网页源码的方法
  18. Python importlib(动态导入模块)
  19. 数据库if判断语句
  20. CopyOnWriteArrayList源码分析

热门文章

  1. 【ORACLE 】查询被锁住的对象,并结束其会话
  2. Linux 下如何安装 .rpm 文件
  3. MySQL DROP 大表时的注意事项
  4. android开发,权限获取
  5. python pytest测试框架介绍二
  6. Android - dhroid 开发框架
  7. JSPatch - 基本使用和学习
  8. Python中常用包——sklearn主要模块和基本使用方法
  9. php小记
  10. POJ-1952 BUY LOW, BUY LOWER(线性DP)