• Selenium(十五)cookie


    有时候我们需要验证浏览器中是否存在某个 cookie,因为基于真实的 cookie 的测试是无法通过集成测试完成的。WebDriver 提供了操作 Cookie 的相关方法可以读取、添加和删除 cookie。

    webdriver 操作 cookie 的方法有:
    
    get_cookies()                  获得所有 cookie 信息
    get_cookie(name)               返回有特定 name 值有 cookie 信息
    add_cookie(cookie_dict)        添加 cookie,必须有 name 和 value 值
    delete_cookie(name)            删除特定(部分)的 cookie 信息
    delete_all_cookies()           删除所有 cookie 信息
    #coding=utf-8
    from selenium import webdriver
    import time
    driver
    = webdriver.Chrome() driver.get("http://www.youdao.com")
    # 获得 cookie 信息 cookie= driver.get_cookies()
    #将获得 cookie 的信息打印 print (cookie)
    driver.quit()

    打印结果:

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

    #coding=utf-8
    from selenium import webdriver
    import time
    driver = webdriver.Firefox()
    driver.get("http://www.youdao.com")
    
    
    #向 cookie 的 name 和 value 添加会话信息。
    driver.add_cookie({'name':'key-aaaaaaa', 'value':'value-bbbbbb'})
    
    #遍历 cookies 中的 name 和 value 信息打印,当然还有上面添加的信息
    for cookie in driver.get_cookies():
        print ('%s -> %s' % (cookie['name'], cookie['value']))
    
    driver.quit()

    打印结果:

    从打印结果可以看到最后一条 cookie 信息是在脚本执行过程中通过 add_cookie()方法添加的。通过遍历得到的所 cookie 信息从而找到 key 为“name”和“value”的特定 cookie 的 value。

    那么在什么情况下会用到 cookie 的操作呢?例如开发人员开发一个功能,当用户登录后,会将用户的用户名写入浏览器 cookie,指定的 key 为“username”,那么我们就可以通过 get_cookies() 找到 useranme,

    打印 vlaue,如果找不到 username 或对应的 value 为空,那么说明保存浏览器的 cookie 是有问题的。


    delete_cookie() 和 delete_all_cookies() 的使用也很简单,前者通过 name 值到一个特定的 cookie 将其删除,后者直接删除浏览器中的所有 cookies()信息。

  • 相关阅读:
    mysql binlog日志删除
    在fork的项目里同步别人新增分支的方法
    Java中运算导致的基本数据类型自动转型 int i ; System.out.println(false?i:'e') 引发的血案
    替换String中的
    mysql绿色版安装及授权连接
    数据初始化函数随笔
    git命令简单使用
    idea常用快捷键(对于新手不建议切换使用eclipse)
    mybatis分页插件PageHelper简单应用
    mybatis处理LIKE模糊查询字符串拼接
  • 原文地址:https://www.cnblogs.com/dydxw/p/10564040.html
Copyright © 2020-2023  润新知