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

selenium webdriver处理浏览器Cookie的更多相关文章

  1. selenium WebDriver 对浏览器标签页的切换

    关于selenium WebDriver 对浏览器标签页的切换,现在的市面上最新的浏览器,当点击一个链接打开一个新的页面都是在浏览器中打开一个标签页,而selenium只能对窗口进行切换的方法,只能操 ...

  2. selenium webdriver 如何添加cookie

    一. webdriver中常用的cookie方法 webdriver中提供了操作cookie的相关方法: get_cookies()                  获得cookie信息 add_c ...

  3. selenium webdriver如何添加cookie

    一. webdriver中常用的cookie方法 webdriver中提供了操作cookie的相关方法: get_cookies()                  获得cookie信息 add_c ...

  4. selenium,webdriver模仿浏览器访问百度 基础2

    学python理念  :  代码要多敲 一定要多敲 哪怕很基础  注释要清晰 由于基础1有一些注释写的很详细, 在这里有些注释没有写的很详细 可以配合基础1一起学习哦 from selenium im ...

  5. 使用python selenium webdriver模拟浏览器

    selenium是进行web自动化测试的一个工具,支持C,C++,Python,Java等语言,他能够实现模拟手工操作浏览器,进行自动化,通过webdriver驱动浏览器操作,我使用的是chrome浏 ...

  6. selenium webdriver(1)---浏览器操作

    启动浏览器 如何启动浏览器已在上篇文章中说明,这里还是以chrome为例,firefox.IE启动方式相同. //启动浏览器 import org.openqa.selenium.WebDriver; ...

  7. Java+selenium如何清理浏览器Cookie

    一.场景:在未注销系统切换不同账号登录系统下,登录会有浏览器缓存,导致登录时间异常缓慢.跟开发浏览器缓存处理机制有关系. 二.解决方法: 获取浏览器Cookie,在Login方法前增加清除缓存的代码. ...

  8. Java环境下 selenium webDriver + chrome浏览器搭建与调试

    一.首先下载selenium webDriver jar包,下载地址如下: http://selenium-release.storage.googleapis.com/index.html 二.下载 ...

  9. Selenium Webdriver firefox 浏览器问题

    Selenium Webdriver 在使用firefox 测试会牵扯到firefox的安装路径的问题 1.默认安装路径在c盘的情况下: WebDriver driver = new FirefoxD ...

随机推荐

  1. css布局 - 九宫格布局的方法汇总(更新中...)

    目录: margin负值实现 祖父和亲爹的里应外合 换个思路 - li生了儿子帮大忙. 借助absolute方位值,实现自适应的网格布局 cloumn多栏布局 grid display: table: ...

  2. SharpGL学习笔记(二) 模型变换(几何变换)

    (二) 模型变换 模形变换就是指的在世界坐标系中(world space)做“移动”,“旋转", "缩放"三种操作. 首先要说明的,在Opengl中,是用4x4矩阵进行坐 ...

  3. laravel blade模板里调用路由方法重定向

    @if (Session::get('user') == NULL) {!!Redirect::to('login')!!} @endif or @if (Session::get('user') = ...

  4. git查看指令

    打开git bash 1,查看自己之前是否生成过ssh密钥 $ ls .ssh 如果存在这个id_rsa.pub这个文件的话表示已经生成了 2,查看用户名和邮箱 $ git config --glob ...

  5. Jenkins权限管理之Matrix Authorization Strategy

    一.权限管理概述 jenkins的权限管理,我目前使用的是Role-based Authorization Strateg.这个很简单,权限是jenkins已经定死了的,就那些.该插件可以让我们新建角 ...

  6. 深入浅出WPF之Binding的使用(二)

    在上一篇中介绍了Binding的基本绑定方法,这一篇中我们在深入的介绍Binding的其他用法. Binding的源也就是数据的源头,在日常的工作中,除了使用像上一篇中的Student对象作为数据源外 ...

  7. linux shell中curl 发送post请求json格式问题

    今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type':'appl ...

  8. Unity3D笔记 切水果三 切水果

    一.创建一个Apple00,拖拽Prfabs下的Sprite命名为Apple00,添加碰撞器Box Collider,编写代码Knife Rey1.js 二.做被切的苹果 步骤和一是一样的,但是被切的 ...

  9. openstack 部署(Q版)-----环境准备篇

    一.环境准备 系统:centos7 cinder01 内网:192.168.10.51 外网:172.16.1.51 compute01   内网:192.168.10.52 外网:172.16.1. ...

  10. OpenCV学习笔记之课后习题练习3-5

    OpenCV学习笔记之课后习题练习2-5 练习使用感兴趣区域(ROI).创建一个210*210的单通道图像并将其归0.在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组. 参考博文:www ...