• Selenium 2自动化测试实战20(操作cookie)


    一、操作cookie

    有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的。WebDriver提供了操作Cookie的相关方法,可以读取、添加和删除cookie信息
    WebDriver操作cookie的方法:
    get_cookies(): 获得所有cookie信息
    get_cookie(name):返回字典的key为“name”的cookie信息
    add_cookie(cookie_dict):添加cookie,“cookie_dict”指字典对象,必须有name和value值。
    delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。
    delete_all_cookies():删除所有cookie信息。

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

    #cookie.py
    # -*- coding: utf-8 -*-
    
    from selenium import webdriver
    from time import sleep
    
    driver=webdriver.Chrome()
    driver.get("http://www.youdao.com")
    
    #获得cookie信息
    cookie=driver.get_cookies()
    
    #打印获得的cookie
    print cookie
    
    driver.quit()

    从执行结果可以看出,cookie数据是以字典的形式进行存放的。可以按照这种形式向浏览器中写入cookie信息。

    #cookie.py
    # -*- coding: utf-8 -*-
    
    from selenium import webdriver
    from time import sleep
    
    driver=webdriver.Chrome()
    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。

    如果找不到username或对应的value为空,那么说明cookie没有成功地保存到浏览器中。

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

  • 相关阅读:
    OSI安全体系结构
    PHP 二维数组根据相同的值进行合并
    Java实现 LeetCode 17 电话号码的字母组合
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 14 最长公共前缀
  • 原文地址:https://www.cnblogs.com/Rita-LJ/p/11726918.html
Copyright © 2020-2023  润新知