zoukankan      html  css  js  c++  java
  • selenium webdriver处理浏览器Cookie

    有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和
    集成测试完成的。WebDriver 提供了操作Cookie 的相关方法可以读取、添加和删除cookie 信息。
    WebDriver 操作cookie 的方法有:
     getCookies() 获得所有cookie 信息
     addCookie(cookie_dict) 添加cookie,必须有name 和value 值
     deleteAllCookies() 删除所有cookie 信息
     deleteCookieNamed(String name)。删除name 这个cookie
     getCookieNamed(String name)。返回特定name 的cookie 值


    下面通过getCookies()来获取当前浏览器的cookie 信息。

    package com.mypro.jase;
    import java.util.Set;
    import org.openqa.selenium.Cookie;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    public class cookie {
          public static void main(String[] args){
                WebDriver driver = new ChromeDriver();
                driver.get("http://www.youdao.com");
                //获得cookie
                Set<Cookie> coo = driver.manage().getCookies();
               //打印cookie
               System.out.println(coo);
               driver.quit();
         }
    }

    执行结果:

    >>> ================================ RESTART ================================
    >>>
    [JSESSIONID=abc6Pheyjzl7M_fdLPy3u;
    path=/;
    domain=www.youdao.com,
    OUTFOX_SEARCH_USER_ID=-1975491366@183.61.23.26;
    expires=星期四, 01 六月2045 10:08:10 CST;
    path=/;
    domain=.youdao.com]

    通过打印结果可以看出,cookie 是以字典的形式进行存放的,知道了cookie 的存放形式,那么我们就
    可以按照这种形式向浏览器中写入cookie 信息。

    import java.util.Set;
    import org.openqa.selenium.Cookie;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class cookie {
          public static void main(String[] args){
                WebDriver driver = new ChromeDriver();
                driver.get("http://www.youdao.com");
                Cookie c1 = new Cookie("name", "key-aaaaaaa");
                Cookie c2 = new Cookie("value", "value-bbbbbb");
                driver.manage().addCookie(c1);
                driver.manage().addCookie(c2);
                //删除所有cookie
                driver.manage().deleteAllCookies();
                //获得cookie
                Set<Cookie> coo = driver.manage().getCookies();
                //打印cookie
                System.out.println(coo);
                driver.quit();
         }
    }

    执行结果:
    >>> ================================ RESTART ================================
    >>>
    [name=key-aaaaaaa;
    path=/;
    domain=www.youdao.com,
    value=value-bbbbbb;
    path=/;
    domain=www.youdao.com]

    从打印结果可以看到最后一条cookie 信息是在脚本执行过程中通过addCookie()方法添加的。通过遍
    历得到的所cookie 信息从而找到key 为“name”和“value”的特定cookie 的value。
    那么在什么情况下会用到cookie 的操作呢?例如开发人员开发一个功能,当用户登录后,会将用户的
    用户名写入浏览器cookie,指定的key 为“username”,那么我们就可以通过getCookies() 找到useranme,
    打印vlaue,如果找不到username 或对应的value 为空,那么说明保存浏览器的cookie 是有问题的。
    deleteAllCookies()的使用也很简单,前者通过name 值到一个特定的cookie 将其删除,后者直接删除浏览器中的所有cookies()信息。

  • 相关阅读:
    php 延迟静态绑定: static关键字
    python分片
    用逗号分隔数字,神奇
    ubuntu 屏幕截图
    js 获取随机数
    netty : NioEventLoopGroup 源码分析
    LinkedList 源码分析
    面向对象
    JS
    网页
  • 原文地址:https://www.cnblogs.com/111testing/p/6384628.html
Copyright © 2011-2022 走看看