前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)

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

作者头像
北京-宏哥
发布2022-03-09 10:39:36
7540
发布2022-03-09 10:39:36
举报

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 信息。

代码语言:javascript
复制
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 信息。

代码语言:javascript
复制
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应该是空的。

代码语言:javascript
复制
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被删除了。

代码语言:javascript
复制
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的值。

代码语言:javascript
复制
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 是有问题的。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.操作cookie 的方法
    • 2.1getCookies()
      • 2.2addCookie()
        • 2.3deleteAllCookies()
          • 2.4deleteCookieNamed(String name)
            • 2.5getCookieNamed(String name)
            • 3.小结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档