《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)

简介: 【6月更文挑战第6天】本文介绍了如何使用WebDriver进行浏览器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 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 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 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 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 是有问题的。

好了,时间不早了,今天就讲解和分享到这里,感谢您耐心地阅读!



每天学习一点,今后必成大神-


往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):


Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章
|
3月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
10月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
1288 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
10月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
276 31
Selenium IDE:Web自动化测试的得力助手
|
10月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
573 17
Selenium:强大的 Web 自动化测试工具
|
11月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
218 4
|
11月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
167 0
|
12月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
210 0
|
12月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
1759 5
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。