《手把手教你》系列技巧篇(六十五)-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 是有问题的。

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

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

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

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

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

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

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

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

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

Pycharm工具基础使用教程

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值