《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
1.简介
今天这一篇,宏哥主要讲解:利用WebDriver 提供可以读取、添加和删除cookie 信息的相关操作方法。验证浏览器中是否存在某个cookie。原因是:因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的。
2.操作cookie 的方法
WebDriver 操作cookie 的方法有:
①getCookies() 获得所有cookie 信息
②addCookie(cookie_dict) 添加cookie,必须有name 和value 值
③deleteAllCookies() 删除所有cookie 信息
④deleteCookieNamed(String name)。删除name 这个cookie
⑤getCookieNamed(String name)。返回特定name 的cookie 值
2.1getCookies()
1.下面通过getCookies()来获取当前浏览器的cookie 信息。
package lessons; import java.util.Set; import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
* 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
*
* 2022年1月28日
*/
public class CookieOperation { public static void main(String[] args) throws InterruptedException{ System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize(); //获得cookie
Set<Cookie> coo = driver.manage().getCookies();
//打印cookie
System.out.println(coo);
Thread.sleep(6000);
System.out.println("browser will be close");
driver.quit();
} }
2.代码执行结果:

2.2addCookie()
1.通过前边的打印结果可以看出,cookie 是以字典的形式进行存放的,知道了cookie 的存放形式,那么我们就可以按照这种形式向浏览器中写入cookie 信息。
package lessons; import java.util.Set; import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
* 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
*
* 2022年1月28日
*/
public class CookieOperation { public static void main(String[] args) throws InterruptedException{ System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize();
//添加cookie
Cookie c1 = new Cookie("name-bj", "key-aaaaaaa");
Cookie c2 = new Cookie("value-hg", "value-bbbbbb");
driver.manage().addCookie(c1);
driver.manage().addCookie(c2); //获得cookie
Set<Cookie> coo = driver.manage().getCookies();
//打印cookie
System.out.println(coo); Thread.sleep(6000);
System.out.println("browser will be close");
driver.quit();
} }
2.代码执行结果:

2.3deleteAllCookies()
1.下面通过deleteAllCookies()删除所有cookie信息,执行代码打印cookie应该是空的。
package lessons; import java.util.Set; import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
* 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
*
* 2022年1月28日
*/
public class CookieOperation { public static void main(String[] args) throws InterruptedException{ System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize(); //删除所有cookie
driver.manage().deleteAllCookies(); //获得cookie
Set<Cookie> coo = driver.manage().getCookies();
//打印cookie
System.out.println(coo); Thread.sleep(6000);
System.out.println("browser will be close");
driver.quit();
} }
2.代码执行结果:

2.4deleteCookieNamed(String name)
1.下面通过deleteCookieNameds()删除指定name的cookie信息,执行代码打印cookie应该是空的看到BIDUPSID的cookie被删除了。
package lessons; import java.util.Set; import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
* 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
*
* 2022年1月28日
*/
public class CookieOperation { public static void main(String[] args) throws InterruptedException{ System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize(); //删除所有cookie
driver.manage().deleteCookieNamed("BIDUPSID"); //获得cookie
Set<Cookie> coo = driver.manage().getCookies();
//打印cookie
System.out.println(coo); Thread.sleep(6000);
System.out.println("browser will be close");
driver.quit();
} }
2.代码执行结果:

2.5getCookieNamed(String name)
1.下面利用getCookieNamed(String name)返回特定name的cookie值。打印结果是BIDUPSID的值。
package lessons; import java.util.Set; import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
* 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
*
* 2022年1月28日
*/
public class CookieOperation { public static void main(String[] args) throws InterruptedException{ System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize(); //返回BIDUPSID的cookie值
Cookie coo = driver.manage().getCookieNamed("BIDUPSID"); //打印cookie
System.out.println(coo); Thread.sleep(6000);
System.out.println("browser will be close");
driver.quit();
} }
2.代码执行结果:

3.小结
当开发人员开发一个功能,当用户登录后,会将用户的用户名写入浏览器cookie,指定的key 为“username”,那么我们就可以通过getCookies() 找到useranme,打印vlaue,如果找不到username 或对应的value 为空,那么说明保存浏览器的cookie 是有问题的。
好了,时间不早了,今天就讲解和分享到这里,感谢您耐心地阅读!
《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)的更多相关文章
- 《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...
- 《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)
1.简介 CSS定位方式和xpath定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比xpath定位速度快,且比CSS稳定的特性.下面详细介绍CSS定位方式的使用方法.xpat ...
- 《手把手教你》系列技巧篇(十一)-java+ selenium自动化测试-元素定位大法之By tag name(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...
- 《手把手教你》系列技巧篇(七)-java+ selenium自动化测试-宏哥带你全方位吊打Chrome启动过程(详细教程)
1.简介 经过前边几篇文章和宏哥一起的学习,想必你已经知道了如何去查看Selenium相关接口或者方法.一般来说我们绝大多数看到的是已经封装好的接口,在查看接口源码的时候,你可以看到这个接口上边的注释 ...
- 《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
1.简介 从这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是:定位元素,并去对定位到的元素进行一系列相关的操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如 ...
- 《手把手教你》系列技巧篇(九)-java+ selenium自动化测试-元素定位大法之By name(详细教程)
1.简介 上一篇宏哥已经介绍了通过id来定位元素,今天继续介绍其他剩下的七种定位方法中的通过name来定位元素.本文来介绍Webdriver中元素定位方法之By name,顾名思义,就是我们想要定位的 ...
- 《手把手教你》系列技巧篇(十三)-java+ selenium自动化测试-元素定位大法之By partial link text(详细教程)
1.简介 本文按计划就要开始介绍partial link text,顾名思义是通过链接定位的(官方说法:超链接文本定位).什么是partial link text呢,看到part这个单词我们就可以知道 ...
- 《手把手教你》系列技巧篇(六十)-java+ selenium自动化测试 - 截图三剑客 -中篇(详细教程)
1.简介 前面我们介绍了Selenium中TakeScreenshot类来截图,得到的图片是浏览器窗口内的截图.有时候,只截浏览器窗口内的图是不够的,而且TakeScreenshot截图只针对浏览器的 ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
随机推荐
- hive 之 查看某库一共有多少张表
思路一: show出所有表,然后wc -l hive -e" use database_name; show tables; "|wc -l 思路二: 1.show出当前库所有的表 ...
- day7 对字母数字的编排
1.函数fun()的功能:在s数组内寻找并且统计t数组在s数组中出现的次数 输入字符串:函数scanf()函数不好用,会出现很多bug,因此不使用scanf() 效果理想: 2.函数fun()功能:将 ...
- [Eclipse插件] 编辑插件IndentGuide
IndentGuide插件 将可配置的缩进指导线添加到Eclipse文本编辑器 如下图
- 学习AJAX必知必会(4)~同源策略、解决跨域问题(JSONP、CORS)
一.同源策略(Same-Origin Policy),是浏览器的一种安全策略. 1.同源(即url相同):协议.域名.端口号 必须完全相同.(请求是来自同一个服务) 2.跨域:违背了同源策略,即跨域. ...
- default和delete
在C++中,有四类特殊的成员函数,分别为:默认构造函数,默认析构函数,默认拷贝构造函数,默认赋值运算符.他们的作用为创建.初始化.销毁.拷贝对象. 虽然在类A中什么都没有定义,但是编译会通得过,因为编 ...
- golang中的标准库http
Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现. http客户端 基本的HTTP/HTTPS请求 Get.Head.Post和PostForm函数发出HTTP/HTTP ...
- Servlet-base标签的作用(相对路径和绝对路径)
Web中的相对路径和绝对路径 在javaWeb中,路径分为相对路径和绝对路径: 相对路径: . 表示当前目录 .. 表示上一级目录 资源名 表示当前目录/资源名 绝对路径: http://ip ...
- 集合框架-TreeSet-Comparator比较器
1 package cn.itcast.p5.treeset.demo; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 ...
- 使用VSCode在本地电脑上对树莓派远程开发
目的及原理 有时身边没有额外的显示器和键盘,或者有时树莓派在另一个屋子连接着路由器,那么当我们想在树莓派上做开发时就可以使用VS Code的远程开发能力.下面一张图显而易见地说明了远程开发的工作原理( ...
- 微服务架构 | 5.1 使用 Netflix Hystrix 断路器
目录 前言 1. Hystrix 基础知识 1.1 Hystrix 断路器强调调用 1.2 两大类别的 Hystrix 实现 1.3 舱壁策略 1.4 Hystrix 在远程资源调用失败时的决策过程 ...