zoukankan      html  css  js  c++  java
  • 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()信息。

  • 相关阅读:
    小四学习系列教程
    SQL分组多列统计(GROUP BY后按条件分列统计) -转
    fdisk:command not found
    PWA最简单例子
    Rider 2017.1.1下跑AVD出现Unexpected schema version 3错误的解决方法
    困扰:C#.net 连接Oracle11g 不报错但是在connection时出现 ServerVersion 引发了“System.InvalidOperationException”类型的异常
    JQuery EasyUI datagrid 复杂表头处理
    sql server 与oracle 中字段类型的对应
    Oracle 11g导出空表、少表的解决办法
    JS组件系列——两种bootstrap multiselect组件大比拼
  • 原文地址:https://www.cnblogs.com/dydxw/p/10564040.html
Copyright © 2011-2022 走看看