zoukankan      html  css  js  c++  java
  • Selenium2+python自动化40-cookie相关操作【转载】

    前言

    虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。

    登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录

    一、获取cookies:get_cookies()

    1.获取cookies方法直接用:get_cookies()

    2.先启动浏览器,获取cookies,打印出来发现是空:[]

    3.打开博客首页后,重新获取cookies,打印出来,就有值了

    二、登录后的cookies

    1.先登录博客园(这里登录用自己的账号和密码吧)

    2.重新获取cookies,发现跟之前获取的不一样了

    3.主要是找到这一个cookie,发现它的name和value发生了变化,这就是未登录和已登录的区别了(对比上下两张图)

    {u'name': u'.CNBlogsCookie', u'value': u'B7813EBA142142CE88CC8C0B33B239F566xxxx'}

    三、获取指定name的cookie:driver.get_cookie(name)

    1.获取cookies发现里面有多个cookie,有时候我们只需要其中的一个,把重要的提出来,比如登录的cookie

    2.这里用get_cookie(name),指定对应的cookie的name值就行了,比如博客园的:.CNBlogsCookie

    四、清除指定cookie:delete_cookie()

    1.为了进一步验证上一步获取到的就是登录的cookie,可以删除它看看页面什么变化

    2.删除这个cookie后刷新页面,发现刚才的登录已经失效了,变成未登录状态了

    五、清除所有cookies:delete_all_cookies()

    1.清除所有cookies后登录状态也失效了,cookies为空[]

    六、cookie操作的几个方法

    1.get_cookies():获取所有cookies

    2.driver.get_cookie(name):获取指定name的cookie:

    3.清除指定cookie:delete_cookie()

    4.delete_all_cookies():清除所有cookies

    5.add_cookie(cookie_dict):添加cookie的值

    (第五个方法可以用于绕过验证码登录,下篇详细介绍)

    七、参考代码

    # coding:utf-8
    from selenium import webdriver
    import time

    driver = webdriver.Firefox()
    # 启动浏览器后获取cookies
    print driver.get_cookies()
    driver.get("http://www.cnblogs.com/yoyoketang/")
    # 打开主页后获取cookies
    print driver.get_cookies()
    # 登录后获取cookies
    url = "https://passport.cnblogs.com/user/signin"
    driver.get(url)
    driver.implicitly_wait(30)
    driver.find_element_by_id("input1").send_keys(u"上海-悠悠")
    driver.find_element_by_id("input2").send_keys(u"xxx")
    driver.find_element_by_id("signin").click()
    time.sleep(3)
    print driver.get_cookies()

    # 获取指定name的cookie
    print driver.get_cookie(name=".CNBlogsCookie")

    # 清除指定name的cookie
    driver.delete_cookie(name=".CNBlogsCookie")
    print driver.get_cookies()
    # 为了验证此cookie是登录的,可以删除后刷新页面
    driver.refresh()

    # 清除所有的cookie
    driver.delete_all_cookies()
    print driver.get_cookies()

  • 相关阅读:
    外贸术语缩写大全简写解释
    免费Shopify主题Dawn
    语音搜索对未来SEO的影响
    基于Prometheus和Grafana监控redis,Oracle,mysql,pg以及sqlserver的方法总结
    使用Grafana 监控 SQLSERVER数据库
    使用influxdb以及Grafana监控vCenter的操作步骤
    Grafana监控Redis的使用情况
    OpenPower服务使用node-exporter prometheus以及grafana进行性能监控的流程
    Mysql localhost 无法登录 root用户的处理过程
    总结: Redis 查看key大小的简单总结
  • 原文地址:https://www.cnblogs.com/caoj/p/7814122.html
Copyright © 2011-2022 走看看