selenium+Python(cookie处理)
cookie 处理
本节重点:
- driver.get_cookies() 获得 cookie 信息
- add_cookie(cookie_dict) 向 cookie 添加会话信息
- delete_cookie(name) 删除特定(部分)的 cookie
- delete_all_cookies() 删除所有 cookie
cookie是webdriver 中已向重要操作,有时候我们需要了解浏览器中,例如:
是否存在了某个 cookie 信息,webdriver 可以帮助我们读取、添加,删除 cookie 信息。
通过博客园登陆来分析 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'C709F15A8BC0B3E8D9AD1F68B371053849F7FEE31F73F1292A150932FF09A7B0D4A1B449A3
2A6B24AD986CDB05B9998471A37F39C3B637E85E481AA986D3F8C187D7708028F9D4ED3B326B
46DC43B416C47B84D706099ED1D78B6A0FC72DCF948DB9D5CBF99D7848FDB78324',
u'expiry': None, u'path': u'/', u'secure': False}]
>>> ========================= RESTART ================================
#第二次执行信息
>>>
[{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value':
u'5BB735CAD62E99F8CCB9331C32724E2975A0150D199F4243AD19357B3F99A416A93B2E803F
4D5C9D065429713BE8B5DB4ED760EDCBAF492EABE2158B3A6FBBEA2B95C4DA3D2EFEADACC324
7040906F1462731F652199E2A8BEFD8A9B6AAE87CF3059A3CAEB9AB0D8B1B7AD2A',
u'expiry': 1379502502, u'path': u'/', u'secure': False}]
>>>
第一次注释掉勾选保存密码的操作,第二次通过勾选保存密码获得 cookie 信息 ;
来看两次运行结果的 cookie 的何不同:
u'expiry': None
u'expiry': 1379502502
通过对比发现,不勾选保存密码时 expiry 的值为 none ; 那么就可以初步判断勾选
保存密码的操作在 cookie 中起到了作用。至于是否准确可以再做进一步的分析。
添加cookie
1.这里需要添加两个 cookie,一个是.CNBlogsCookie,另外一个
是.Cnblogs.AspNetCore.Cookies。
2.我这里打开的网页是博客的主页:http://www.cnblogs.com/yoyoketang,没
进入登录页。
3.添加 cookie 后刷新页面,接下来就是见证奇迹的时刻了。
- # coding:utf-8
- from selenium import webdriver
- import time
- driver = webdriver.Firefox()
- driver.get("http://www.cnblogs.com/yoyoketang")
- # # 添加 cookie
- c1 = {u'domain': u'.cnblogs.com',
- u'name': u'.CNBlogsCookie',
- u'value': u'xxxx',
- u'expiry': 1491887887,
- u'path': u'/',
- u'httpOnly': True,
- u'secure': False}
- c2 = {u'domain': u'.cnblogs.com',
- u'name': u'.Cnblogs.AspNetCore.Cookies',
- u'value': u'xxxx',
- u'expiry': 1491887887,
- u'path': u'/',
- u'httpOnly': True,
- u'secure': False}
- driver.add_cookie(c1) # 添加 2 个值
- driver.add_cookie(c2)
- time.sleep(3) # 交流 QQ 群:232607095
- # 刷新下页面就见证奇迹了
- driver.refresh()
selenium+Python(cookie处理)的更多相关文章
- python+selenium操作cookie
WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息. WebDriver操作cookie的方法: get_cookies(): 获得所有cookie信息. get ...
- selenium+python自动化测试
F12: 右键 选择复制 path 在selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本,脚本内容如下: from selenium import webdriver ...
- python爬虫积累(一)--------selenium+python+PhantomJS的使用(转)
阅读目录 一.Selenium介绍 二.爬虫为什么要用selenium? 三.PhantomJS介绍 四.PhantomJS安装 五.操作实战 六.在此推荐虫师博客的学习资料 selenium + p ...
- python爬虫积累(一)--------selenium+python+PhantomJS的使用
最近按公司要求,爬取相关网站时,发现没有找到js包的地址,我就采用selenium来爬取信息,相关实战链接:python爬虫实战(一)--------中国作物种质信息网 一.Selenium介绍 Se ...
- 13、Selenium+python+API分类总结
Selenium+python+API分类总结 http://selenium-python.readthedocs.org/index.html 分类 方法 方法描述 客户端操作 __init__( ...
- selenium+python实现自动化登录
工作需要实现一个微博自动登录的操作,在网上差了一些资料,决定使用selenium+python实现 selenium 是一个web的自动化测试工具,主流一般配合java或者python使用,我这里使用 ...
- selenium + python自动化测试环境搭建
selenium的在python平台的搭建: 搭建平台windows 准备工具如下: --------------------------------------------------------- ...
- Page Object Model (Selenium, Python)
时间 2015-06-15 00:11:56 Qxf2 blog 原文 http://qxf2.com/blog/page-object-model-selenium-python/ 主题 Sel ...
- selenium+python cooking用法 (转)
selenium-webdriver(python)--cookie处理 driver.get_cookies() 获得cookie信息 add_cookie(cookie_dict) 向cooki ...
随机推荐
- ssh关于含有外键的传值中无法识别正确的action的原因和解决办法
在含有外键的表中,要保存一个值到这个外键时:逻辑思路:需要先将jsp页面的值传到相应的action中,在这个action中需要引入这个外键的实体层和DAO层(DAO层只需set方法),在执行函数中对于 ...
- elasticsearch CriteriaQuery查询例子
elasticsearch CriteriaQuery java API实例应用 CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteri ...
- gulp-usemin 插件使用
关于什么是gulp,它和grunt有什么区别等问题,这里不做任何介绍.本文主要介绍如何使用gulp-usemin这款插件,同时也会简单介绍本文中用到的一些插件. 什么是gulp-usemin 用来将H ...
- Maven整理笔记の安装及配置
第一部分:在Windows上安装Maven 检查JDK的安装 在安装Maven之前,首先确认你已经正确安装了JDK.Maven可以运行在JDK1.4及以上版本.先打开Windows命令,运行 ...
- [改善] dcef3 for Firemonkey 浏览器控件,拉动窗体大小会闪烁的问题
问题:dcef3 for Firemonkey 浏览器控件,拉动窗体大小会闪烁的问题 修改源码:ceffmx.pas 找到 procedure TCustomChromiumFMX.Resize; 修 ...
- Linq特取操作之ElementAt,Single,Last,First源码分析
Linq特取操作之ElementAt,Single,Last,First源码分析 一:linq的特取操作 First/FirstOrDefault, Last/LastOrDefault, Eleme ...
- Reporting Service服务SharePoint集成模式安装配置(9、PowerPivot for SharePoint 安装配置详细)
PowerPivot for SharePoint 增加了对发布到 SharePoint 中的 PowerPivot 工作簿的协作和文档管理支持. PowerPivot for SharePoint ...
- Android应用开发以及设计思想深度剖析
Android应用开发以及设计思想深度剖析(1) 21cnbao.blog.51cto.com/109393/956049
- 百度联盟广告 http://cpro.baidustatic.com/cpro/ui/c.js
<script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript" ...
- AOP拦截日志报错llegalStateException: It is illegal to call this method if the current request is not in asynchronous mode
原文链接:https://my.oschina.net/mengzhang6/blog/2395893 关于一次AOP拦截入参记录日志报错的梳理总结 将服务发布到tomcat中后,观察服务的运行状态以 ...