Python selenium -- cookie处理

转自:http://www.cnblogs.com/fnng/p/3269450.html

本节重点:

  • driver.get_cookies() 获得cookie信息
  • add_cookie(cookie_dict)  向cookie添加会话信息
  • delete_cookie(name)   删除特定(部分)的cookie
  • delete_all_cookies()    删除所有cookie

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

打印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()

运行打印信息:

[{u‘domain‘: u‘.youdao.com‘, u‘secure‘: False, u‘value‘: u‘aGFzbG9nZ2VkPXRydWU=‘, u‘expiry‘: 1408430390.991375, u‘path‘: u‘/‘, u‘name‘: u‘_PREF_ANONYUSER__MYTH‘}, {u‘domain‘: u‘.youdao.com‘, u‘secure‘: False, u‘value‘: u‘[email protected]‘, u‘expiry‘: 2322974390.991376, u‘path‘: u‘/‘, u‘name‘: u‘OUTFOX_SEARCH_USER_ID‘}, {u‘path‘: u‘/‘, u‘domain‘: u‘www.youdao.com‘, u‘name‘: u‘JSESSIONID‘, u‘value‘: u‘abcUX9zdw0minadIhtvcu‘, u‘secure‘: False}]

对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-bbbb‘})

#遍历cookies中的name 和value信息打印,当然还有上面添加的信息
for cookie in driver.get_cookies():
    print "%s -> %s" % (cookie[‘name‘], cookie[‘value‘])

# 下面可以通过两种方式删除cookie
# 删除一个特定的cookie
driver.delete_cookie("CookieName")
# 删除所有cookie
driver.delete_all_cookies()

time.sleep(2)
driver.close()

运行打印信息:

YOUDAO_MOBILE_ACCESS_TYPE -> 1
_PREF_ANONYUSER__MYTH -> aGFzbG9nZ2VkPXRydWU=
OUTFOX_SEARCH_USER_ID -> [email protected]
JSESSIONID -> abc7qSE_SBGsVgnVLBvcu
key-aaaaaaa -> value-bbbb  # 这一条是我们自己添加的

通过博客园登陆来分析cookie

#coding=utf-8

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get("http://passport.cnblogs.com/login.aspx?ReturnUrl=http://www.cnblogs.com/fnng/admin/EditPosts.aspx")

time.sleep(3)
driver.maximize_window() # 浏览器全屏显示

#通过用户名密码登陆
driver.find_element_by_id("tbUserName").send_keys("fnngj")
driver.find_element_by_id("tbPassword").send_keys("123456")

#勾选保存密码
driver.find_element_by_id("chkRemember").click()
time.sleep(3)
#点击登陆按钮
driver.find_element_by_id("btnLogin").click()

#获取cookie信息并打印
cookie= driver.get_cookies()
print cookie

time.sleep(2)
driver.close()

运行打印信息:

#第一次执行信息
>>>
[{u‘domain‘: u‘.cnblogs.com‘, u‘name‘: u‘.DottextCookie‘, u‘value‘: u‘C709F15A8BC0B3E8D9AD1F68B371053849F7FEE31F73F1292A150932FF09A7B0D4A1B449A32A6B24AD986CDB05B9998471A37F39C3B637E85E481AA986D3F8C187D7708028F9D4ED3B326B46DC43B416C47B84D706099ED1D78B6A0FC72DCF948DB9D5CBF99D7848FDB78324‘, u‘expiry‘: None, u‘path‘: u‘/‘, u‘secure‘: False}]
>>> ========================= RESTART ================================
#第二次执行信息
>>>
[{u‘domain‘: u‘.cnblogs.com‘, u‘name‘: u‘.DottextCookie‘, u‘value‘: u‘5BB735CAD62E99F8CCB9331C32724E2975A0150D199F4243AD19357B3F99A416A93B2E803F4D5C9D065429713BE8B5DB4ED760EDCBAF492EABE2158B3A6FBBEA2B95C4DA3D2EFEADACC3247040906F1462731F652199E2A8BEFD8A9B6AAE87CF3059A3CAEB9AB0D8B1B7AD2A‘, u‘expiry‘: 1379502502, u‘path‘: u‘/‘, u‘secure‘: False}]
>>> 

第一次注释掉勾选保存密码的操作,第二次通过勾选保存密码获得cookie信息 ;来看两次运行结果的cookie的何不同:

u‘expiry‘: None

u‘expiry‘: 1379502502

通过对比发现,不勾选保存密码时expiry 的值为none ; 那么就可以初步判断勾选保存密码的操作在cookie 中起到了作用。至于是否准确可以再做进一步的分析。

时间: 2024-12-15 01:55:48

Python selenium -- cookie处理的相关文章

Python Selenium Cookie 绕过验证码实现登录

Python Selenium Cookie 绕过验证码实现登录 之前介绍过博客园的通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1.直接看代码,内有详细注释说明 # FileName : Wm_Cookie_Login.py # Author : Adil # DateTime : 2018/3/20 19:47 # SoftWare : PyCharm from selenium import webdriver import

WEB自动化(Python+selenium)的API

在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                                                                                                     WEB自动化测试培训2 课程目的 一.Webdriver API 的使用 课程内容 1    控制浏览器 Selenium 主要提供的是操作页面上各

python selenium API 常用方法

配置使用环境 下载相应的浏览器驱动, Firefox 是默认的 本文以 chrome 为主 ,放在scripts目录下ChromeDriver 官方下载地址 : 所有版本的 ChromeDriver 文档参考 简明 Python 教程 Python教程 - 廖雪峰 官方文档 : Selenium with Python webdriver实用指南python版本 一份简单的测试 demo 关于 360 haosou.com 的测试 : 1 #coding=utf-8 2 from seleniu

Python Selenium入门学习材料整理

Python Selenium入门学习材料整理一.简介及环境搭建1.selenium 介绍:selenium 是一个 web 的自动化测试工具,可以自动打开浏览器执行页面打开.页面内容抓取.页面元素搜索,是相对好上手的网页爬取工具.2.安装selenium:pip install selenium3.安装webdriver:selenium打开网页需要有webdriver来调用浏览器.Firefox:https://github.com/mozilla/geckodriver/releases/

Python Selenium 文件上传(二)

今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传(一) 这种方法直接通过命令行执行脚本时没有问题,可以成功上传,但是如果通过saltstack 远程控制执行时,SendKeys就定位不到窗口了. 所以采用这种新的方式来实现文件上传功能,并完美的解决了这个问题. 具体操作步骤如下: 1.下载工具 AutoIt及使用 AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows

Python Selenium 文件上传(一)

昨天写了Web 文件下载的ui自动化,下载之后,今天就要写web 文件上传的功能了. 当然从折腾了俩小时才上传成功.下面写一下自己操作的步骤 首先网上说的有很多方法 如 input 标签的最好做了,直接定位到元素,然后再sendKeys("value")即可 <input id="file_name" class="text-1 w255" type="text" readonly="" value=

转 Python Selenium设计模式-POM

前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务.只需要定位到元素,执行对应的操作即可.下面我们看一下这个简单的脚本实现百度搜索. from selenium import webdriver import time driver = webdriver.Firefox() driver.i

Python+selenium自动化公共逻辑步骤封装

开篇 个人博客"Python+selenium的GUI自动化实现"提到的chrome与IE浏览器调用插件已上传至51CTO下载,对应链接分别为:chrome,http://down.51cto.com/data/2171584:IE,http://down.51cto.com/data/2171585:有需要的直接下载即可:  正文 关于自动化,其实质就是用机器操作代替手工执行,从而减少人力投入.节约项目运营成功.优秀的自动化框架,可能的一个发展过程,前期自动化用例写作实现过程,可能需

python selenium 元素定位(三)

上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到这个元素,我们从能对这个元素进行操作,那么我们下来看看如何来定位元素. selenium 提供了8中元素定位的方法(大家要学习元素的定位,首先可以学习下前端的基础知识,这样有利于我们学习自动化测试,大家可以看一下:http://www.runoob.com/) find_element_by_id