《手把手教你》系列技巧篇(六十五)-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 是有问题的。
好了,时间不早了,今天就讲解和分享到这里,感谢您耐心地阅读!
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
公众号(关注宏哥) 客服微信


【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇