(一)方法

方法

简单说明

add_cookie(cookie_dict)

在当前会话中添加cookie信息

cookie_dict:字典,name和value是必须的

delete_all_cookies()

在当前会话中删除所有cookie信息

delete_cookie(name)

删除单个名为name的cookie信息

get_cookie(name)

返回单个名为name的cookie信息,如果没有找到,返回none

get_cookies()

返回当前会话所有的cookie信息

 

(二)对比登录前后cookie的区别

 from selenium import webdriver
import time
# driverOption = webdriver.ChromeOptions()
# driverOption.add_argument(r'user-data-dir=C:\Users\123456\AppData\Local\Google\Chrome\User Data')
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
print("登录前:")
for ck in driver.get_cookies():
print(ck)
login_area = driver.find_element_by_css_selector('#login_area')
register = login_area.find_element_by_link_text('登录')
register.click()
#这步等待25秒,手动输入账号密码,登录。记得勾选下次自动登录
time.sleep(25)
print('登陆后')
for ck in driver.get_cookies():
print(ck)
driver.quit()

对比下图的输出,可以发现,登录后多了'name': '.CNBlogsCookie','name': '.Cnblogs.AspNetCore.Cookies'。

(三)添加cookie,实现自动登录(通过这种方式可以跳过验证码)

下面的代码记得添加value的值

 from selenium import webdriver
import time
# driverOption = webdriver.ChromeOptions()
# driverOption.add_argument(r'user-data-dir=C:\Users\123456\AppData\Local\Google\Chrome\User Data')
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
#value的值,把自己第二步中打印出来的value值复制过来就行了。
#这里加domain是因为默认添加的域名是www.cnblogs.com,所以指定域名
# (IDE不好复制的话,可以ctrl+a先复制到一些文档编辑软件上去,然后再复制回来)
driver.add_cookie({
'domain': '.cnblogs.com',
'name': '.CNBlogsCookie',
'value':'' })
#value的值,把自己第二步中打印出来的value值复制过来就行了。
driver.add_cookie({
'domain': '.cnblogs.com',
'name': '.Cnblogs.AspNetCore.Cookies',
'value': '' }
)
time.sleep(2)
#刷新页面
driver.refresh()
time.sleep(3)
driver.quit()

 

(四)加载谷歌的用户配置文件(这个和操作cookie没什么关系,懒得专门写一篇了,就放到这了)

 from selenium import webdriver
import time
driverOption = webdriver.ChromeOptions()
#把这个C:\Users\123456\AppData\Local\Google\Chrome\User Data替换成自己的就行了
#123456把这个换成本地计算机的用户名应该就是了
driverOption.add_argument(r'user-data-dir=C:\Users\123456\AppData\Local\Google\Chrome\User Data')
driver = webdriver.Chrome(chrome_options=driverOption)
driver.implicitly_wait(5)
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
time.sleep(3)
driver.quit()

Python+Selenium笔记(十七):操作cookie的更多相关文章

  1. Python+Selenium笔记(九):操作警告和弹出框

    #之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一 ...

  2. Python+Selenium笔记(十四)鼠标与键盘事件

     (一) 前言 Webdriver高级应用的API,允许我们模拟简单到复杂的键盘和鼠标事件,如拖拽操作.快捷键组合.长按以及鼠标右键操作,都是通过使用webdriver的Python API 中的Ac ...

  3. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  4. Python+Selenium笔记(六):元素定位

      (一)  前言 Web应用以及包含超文本标记语言(HTML).层叠样式表(CSS).JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返 ...

  5. Python+Selenium笔记(八):操作下拉菜单

    (一) Select类 Select类是selenium的一个特定的类,用来与下拉菜单和列表交互. 下拉菜单和列表是通过HTML的<select> 元素实现的.选择项是通过<sele ...

  6. python selenium 基本常用操作

    最近学习UI自动化,把一些常用的方法总结一下,方便自己以后查阅需要.因本人水平有限,有不对之处多多包涵!欢迎指正! 一.xpath模糊匹配定位元素 武林至尊,宝刀屠龙刀(xpath),倚天不出(css ...

  7. Python+Selenium笔记(十八):持续集成jenkins

    (一)安装xmlrunner 使用Jenkins执行测试时,测试代码中会用到这个模块. pip install xmlrunner (二)安装jenkins (1)   下载jekins https: ...

  8. Python+Selenium笔记(三):使用unittest

    #网络很慢可能会运行报错 (一)   前言 Selenium WebDriver是一个浏览器自动化测试的API集合.它提供了很多与浏览器自动化交互的特性,并且这些API主要是用于测试Web程序.如果仅 ...

  9. Python+Selenium笔记(一):环境配置+简单的例子

    #环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML :  http ...

随机推荐

  1. (转)kafka实战教学

    转载自:https://www.cnblogs.com/hei12138/p/7805475.html Apache kafka 工作原理介绍-----https://www.ibm.com/deve ...

  2. Python+selenium+webdriver 安装与环境配置

    1.python安装:访问python.org/download,下载最新版本,安装过程与其他windows软件类似.记得下载后设置path环境变量,然后Windows命令行就可以调用: 2.Sele ...

  3. TensorFlow object detection API应用

    前一篇讲述了TensorFlow object detection API的安装与配置,现在我们尝试用这个API搭建自己的目标检测模型. 一.准备数据集 本篇旨在人脸识别,在百度图片上下载了120张张 ...

  4. css box-reflect投影实例讲解

    box-reflect一共有以下几个属性: above: 指定倒影在对象的上边 below: 指定倒影在对象的下边 left: 指定倒影在对象的左边 right: 指定倒影在对象的右边 offset: ...

  5. 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 完美正方形

    完美正方形 如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形.历史上,人们花了很久才找到了若干完美正方形.比如:如下边长的22个正方形 2 3 4 6 7 8 12 13 ...

  6. postman参数化 接口响应数据获取符合条件的内容参数化给后面的接口使用

    一:主要内容 从响应结果中找到满足条件的key,获取其value,参数化给后面的接口使用 二:参数化获取想要的value值,传给后面的接口使用 有时我们获取的响应数据,需要的那个字段可能在一个数组里面 ...

  7. windows环境下搭建Java开发环境(二):Tomcat安装和配置

    一.资源下载 官网:http://tomcat.apache.org/ 本人安装的是Tomcat8.5,安装包百度云资源:链接:https://pan.baidu.com/s/17SDFsoS0yAP ...

  8. Navicat创建视图与美化SQL

    数据库-->视图-->新建视图,点击视图创建工具,将需要用到的表拖入到右侧,然后再底部填写具体的字段等,示意图如下: 注意:视图的字段别名或者列名是不能重复的,否则创建失败: 当视图语句非 ...

  9. SpringMVC之使用Servlet原生API作为参数

    SpringMVC的handler接收如下的ServletAPI类型的参数: • HttpServletRequest • HttpServletResponse • HttpSession • ja ...

  10. Nullable<T>、Nullable、null、?修饰符的区别

    这章我们讨论一下Nullable<T>.Nullable.null.?修饰符的区别 原创文章 Nullable<T>的前世今生 讨论它们之前,我们有必要讨论一下Nullable ...