selenium 操作cookie (cookie测试)

前言

在实际的web应用中,可能会涉及到cookie测试,验证浏览器中的cookie是否正确.。Cookies 验证:如果系统使用了cookie,测试人员需要对它们进行检测。如果在 cookies 中保存了注册信息,请确认该 cookie能够正常工作而且已对这些信息已经加密。如果使用 cookie 来统计次数,需要验证次数累计正确。关于cookie的使用可以参考浏览器的帮助信息。如果使用B/S结构cookies。WebDriver 提供了操作Cookie 的相关方法可以读取、添加和删除cookie 信息等方法。(cookie 数据是以以字典的形式进行存放的)

(1)getCookies() 获得所有cookie 信息。
(2)getCookieNamed(String name) 返回字典的key 为“name”的cookie 信息。
(3) addCookie(cookie dict) 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值。
(4)deleteCookieNamed(String name) 删除cookie 信息。“name”是要删除的cookie 的名称;
(5)“optionsString”是该cookie 的选项,目前支持的选项包括“路径”,“域”。
(6) deleteAllCookies() 删除所有cookie 信息。

一、获得cookie

public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
ChromeOptions Options = new ChromeOptions();
Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
WebDriver driver = new ChromeDriver(Options);
driver.manage().window().maximize();
// 窗口最大化
driver.get("https://www.baidu.com/");
Set<Cookie> cookie= driver.manage().getCookies();
//获取cookie
System.out.println(cookie);
//打印cookie
driver.close();
driver.quit();
}

二、增加/删除cookie

public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
        ChromeOptions Options = new ChromeOptions();
        Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
        WebDriver driver = new ChromeDriver(Options);
        driver.manage().window().maximize();
        // 窗口最大化
        driver.get("https://www.baidu.com/");
        //添加cookie
        Cookie c1 = new Cookie("name", "key-aaaaaaa");
        Cookie c2 = new Cookie("value", "value-bbbbbb");
        driver.manage().addCookie(c1);
        driver.manage().addCookie(c2);
        // 获得cookie
        Set<Cookie> coo = driver.manage().getCookies();
        System.out.println(coo);
        //删除所有的cookie
        // driver.manage().deleteAllCookies();
        driver.close();
        driver.quit();
    }

那么在什么情况下会用到cookie 的操作呢?例如开发人员开发一个功能,当用户登录后,会将用户的用户名写入浏览器cookie,指定的key 为“username”,那么我们就可以通过getCookies() 找到useranme,打印vlaue。
如果找不到username 或对应的value 为空,那么说明cookie 没有成功的保存到浏览器中。deleteCookie() 和deleteAllCookies() 的使用也很简单,前者通过name 删除一个特定的cookie 信息,后者直接删除浏览器中的所有cookies()信息。

时间: 2024-12-19 08:45:53

selenium 操作cookie (cookie测试)的相关文章

JavaScript之DOM-10 cookie (cookie概述、cookie操作)

一.Cookie 概述 Cookie 简介 - Cookie 是由服务器生成并存存储在客户端文件系统(.txt格式)中的key/value对,当浏览器再次请求该站点上的页面时,就会自动把保存的Cookie发回服务器 - Cookie 使得浏览器可以在访问同一站点的不同请求间传递数据,让服务器程序识别不同的客户端 - 典型应用: 保存用户登录状态.跟踪用户行为.页面定制.保存购物车等需要保存全局变量的场合 Cookie 的存放 - Cookie 保存在客户端某个特定的目录下的一个.txt文本文件中

更加方便的操作cookie——cookie封装 (by vczero)

一.前言 之前使用cookie,都是document.cookie的形式去操作,兼容性虽好,但是麻烦.个人又是个比较喜欢造轮子的人,所以针对cookie,封装了个工具类.很长时间以来,我都喜欢写代码,而不太喜欢文字总结,也不太喜欢写些零碎的东西,看来得改. 二.思路 (1)如何封装,封装成啥样 如何封装:就是使用原生的js封装成工具,那样到哪里都能能用.针对document.cookie封装是最好的方式,所有的操作都基于document.cookie. 封装成啥样:封装成能够以对象的形式存在,同

selenium + python 多浏览器测试

selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,help(webdriver) 查看其下package:也可以查看源文件        启动 Firefox firefox是selenium支持得比较成熟的浏览器,很多新的特性都会在firefox中体现.但是做页面的测试,启动速度比较慢,启动以后运行速度还是可以接受的.可直接启动firefox浏览器,参

selenium操作下拉滚动条的几种方法

数据采集中,经常遇到动态加载的数据,我们经常使用selenium模拟浏览器操作,需要多次下拉刷新页面才能采集到所有的数据,就此总结了几种selenium操作下拉滚动条的几种方法 我这里演示的是Java版本的,使用chromedriver,当然你可以换成python或其他语言,浏览器用firefox或者phantomjs(无头浏览器),大部分都是适用的,不同浏览器有略微的差异. 初始化一个浏览器 首先要允许浏览器运行js脚本 DesiredCapabilities sCaps = new Desi

Selenium WebDriver 处理cookie

在使用webdriver测试中,很多地方都使用登陆,cookie能够实现不必再次输入用户名密码进行登陆. 首先了解一下Java Cookie类的一些方法. 在jsp中处理cookie数据的常用方法: getDomain():返回cookie的域名. getMaxAge():返回cookie的存活时间 getName():返回cookie的名字 getPath():返回cookie适用的路径 getSecure():如果浏览器通过安全协议发送Cookie将返回true值,如果浏览器使用标准协议刚返

js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

//是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == "function") {            return true;        }    } catch(e) {}    return false;}//是否存在指定变量 function isExitsVariable(variableName) {    try {        if

【jQuery基础学习】04 jQuery中的表格操作及cookie插件的使用

这章本来准备写成jQuery的表单操作和表格操作的. 然而昨天吧jQuery的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来. 那么今天就来看看表格吧. 因为平常做的都是公司的内部管理系统,所以说数据表格用到的还是比较多的.那么在这里写出来说不定还能用上. 关于jQuery的表格应用 隔行变色 $(function(){ $("tbody>tr:odd").addClass("样式1");//odd是选取奇数行 $("tbody>tr

js 操作cookie cookie路径问题

这里主要不是讲这个方法,js写cookie这种代码网上一抓一把,在使用的时候遇到一点问题,就是写的cookie 是有路径问题的,在user目录下可以使用跳转到另外一个目录下cookie,经过比较cookie与其他cookie的不同发现,用js写的cookie在当前目录下,不在根目录下,这里可以用这个来控制访问但是不符合现在的需求,在网上的某个地方看到一段代码,可以解决这个问题,在这里贴出来,大家需要用的可以参考.代码如下: 1 Utils.writeCookie = function (valu

selenium 操作 获取动态页面数据

# selenium from selenium import webdriver import time driver_path = r"G:\Crawler and Data\chromedriver.exe" driver = webdriver.Chrome(executable_path=driver_path) driver.get('https://www.baidu.com/') time.sleep(5) driver.close() # 关闭页面 driver.qu