• 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()信息。


  • 相关阅读:
    TClientDataSet[7]: 辨析 Field、FieldDef、Fields、FieldDefs、FieldList、FieldDefList
    TClientDataSet[11]: 分组统计
    TClientDataSet[14]: 测试 FindFirst、FindNext、FindLast、FindPrior、Found
    TClientDataSet[9]: 计算字段和 State
    这两天的收获
    又去北京
    关于博客园融资的想法
    《别为小事抓狂》读书笔记
    下周将去北京寻找投资
    服务器搬迁预告
  • 原文地址:https://www.cnblogs.com/linxinmeng/p/6955813.html
Copyright © 2020-2023  润新知