《手把手教你》系列技巧篇(六十五)-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 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
 
随机推荐
- 前端如何低门槛开发iOS、Android、小程序多端应用
			
现如今跨平台开发技术已不是什么新鲜话题了,在市面上也有一些开源的框架可供选择,然而技术成熟.产品服务健全的平台并不多,其中也不乏推陈出新的框架值得关注. 比如最近使用的AVM,由APICloud迭代推 ...
 - Appium之xpath定位详解
			
前面也说过appium也是以webdriver为基的,对于元素的定位也基本一致,只是增加一些更适合移动平台的独特方式,下面将着重介绍xpath方法,这应该是UI层元素定位最强大的方法啦! 以淘宝app ...
 - 原生android webview 显示的H5页面颜色属性无法识别 - 具体解决心得
			
1.前言 background-color: #fc1717bf; 这个样式属性没毛病吧,浏览器都是支持的,但是在android 7.0 系统无法正确识别这个含有透明度的属性, 即bf无法识别,将默认 ...
 - 图形测试分析毫无头绪?HarmonyOS图形栈测试技术帮你解决
			
作者:huangran,图形图像技术专家 应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿.白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好-- 我们发现,如今测试人员的需求已经不只 ...
 - JAVA-JDK1.7-ConCurrentHashMap-测试和验证
			
概述 上次记录了关于ConCurrentHashMap的原理以及源码,现在我对其进行有关功能的测试,下面就讲解一下我测试的内容和代码.这些测试主要针对JDK1.7版本. GET安全测试 上一篇写过ge ...
 - 原生twig模板引擎详解(安装使用)
			
最近在学习SSTI(服务器模板注入),所以在此总结一下 0x00 Twig的介绍 什么是Twig? Twig是一款灵活.快速.安全的PHP模板引擎. Twig的特点? 快速:Twig将模板编译为纯粹的 ...
 - 1121day-户别确认
			
1.Addinfor.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
 - 【记录一个问题】golangci-lint.exe中,盘符大写就会执行出错
			
golangci-lint.exe版本为1.31.0 执行:golangci-lint.exe run d:\source\github.com\ahfuzhang\go_xxx_server\src ...
 - numpy中,从一片c_void_p指向的区域里获取数据
			
以前采用的数据拷贝的笨办法: 1 bitmap_size = (1080, 1920, 3) 2 buf = create_string_buffer(bitmap_size[0]*bitmap_si ...
 - JAVA主要类集分类
			
包装类 Integer包装类 方法 返回值 功能描述 byteValue() byte 以 byte 类型返回该 Integer 的值 intValue() int 以 int 型返回此 Intege ...