zoukankan      html  css  js  c++  java
  • Python+Selenium--cookie处理

    场景

    有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的。webdriver 可以读取、添加和删除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 信息

    通过webdriver 操作cookie 是一件非常有意思的事儿,有时候我们需要了解浏览器中是否存在了某个cookie 信息,webdriver 可以帮助我们读取、添加,删除cookie 信息。

    打印cookie信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 打印cookie信息.py
    @time: 2019-07-05 17:07
    @desc:
    '''
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
    #添加智能等待
    driver.implicitly_wait(10)
     
    driver.get('https://www.baidu.com/')
    cookie=driver.get_cookies()
     
    print(cookie)
    time.sleep(5)
     
    driver.quit()

      

    运行结果(只显示部分):

    1
    [{'domain''.baidu.com''name''BAIDUID''expiry'3685436562'secure'False'value''687F30EFAD1767D5CAFE6165CD09633E:FG=1''httpOnly'False'path''/'},]

     

    对cookie操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: 对cookie操作.py
    @time: 2019-07-05 17:15
    @desc:
    '''
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
    #添加智能等待
    driver.implicitly_wait(10)
     
    driver.get('http://*****m/uniquefu')
    cookie=driver.get_cookies()
     
    #向cookie 的name 和value 添加会话信息。
    driver.add_cookie({'name':'uniquefu''value':'abby'})
    #遍历cookies 中的name 和value 信息打印,当然还有上面添加的信息
    for cookie in driver.get_cookies():
        print ("%s -> %s" % (cookie['name'], cookie['value']))
     
    ##### 下面可以通过两种方式删除cookie #####
    # 删除一个特定的cookie
    driver.delete_cookie("uniquefu")
     
    for cookie in driver.get_cookies():
        print ("%s -> %s" % (cookie['name'], cookie['value']))
    # 删除所有cookie
    driver.delete_all_cookies()
     
    time.sleep(2)
    driver.close()

      

    运行结果:

    _ga -> GA1.2.726951498.1537953532
    _gid -> GA1.2.1240774999.1537953532
    _gat -> 1
    uniquefu -> abby   #增加的

    _ga -> GA1.2.127790903.1537953681
    _gid -> GA1.2.685015195.1537953681
    _gat -> 1

  • 相关阅读:
    VLAN配置Trunk接口
    VLAN基础配置及Access接口实验
    在linux虚拟机中演示DHCP管理动态IP地址
    虚拟机 有关于Vsftpd验证方式虚拟用户访问模式
    使用Bind提供域名解析服务:正向解析和反向解析
    虚拟机环境下有关于NFS系统的介绍操作
    虚拟机 有关于Vsftpd验证方式本地用户访问模式
    虚拟机 有关于Vsftpd验证方式匿名访问模式
    虚拟机上有关于Apache服务基于主机名@基于端口号
    C#版 Winform界面 Socket编程 Client客户端
  • 原文地址:https://www.cnblogs.com/chenlimei/p/12781192.html
Copyright © 2011-2022 走看看