(一)方法

方法

简单说明

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. (转)Python开发程序:支持多用户在线的FTP程序

    原文链接:http://www.itnose.net/detail/6642756.html 作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ...

  2. PHP:session无法使用

    今天在将一套程序放到其他服务器上执行的时候,发现后台的登录验证码不管输入正确与否,总是显示: 验证码输入有误 接着就开始debug了. 因为正确的验证码结果已经经过加密之后保存在了session中,所 ...

  3. dockerfile简述

    作用 Dockerfile的内容是一坨可以执行的代码(或者说是指令)(docker的DSL),这些代码使得创建镜像的操作可以复用以及自动化. 指令格式 Dockerfile的指令格式很简单: INST ...

  4. Customizing docker

    Customizing docker The Docker systemd unit can be customized by overriding the unit that ships with ...

  5. CRM项目再分析建表

    今天老师带着我们分析了一点项目的业务,我们就觉得有些地方呢 有一些不妥额地方,然后呢  我们就在原来表的基础上做了一些修改! 我们也把我们组的项目业务的工作分配了一下! 但是我们遇到了一个组员不和我们 ...

  6. 【LeetCode题解】61_旋转链表(Rotate-List)

    目录 描述 解法:双指针 思路 Java 实现 Python 实现 复杂度分析 描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1-> ...

  7. 用Collectors对List去重

    在学习本篇之前,最好对java8新特性有一定的了解.可以参考:Java8新特性--流(Stream) 场景:有一个实体的List集合,需要根据实体中的某个字段对List去重 要想去重,可以考虑使用Tr ...

  8. Oracle左连接、右连接、全外连接以及(+)号用法

    1.准备工作 Oracle  外连接(OUTER JOIN)包括以下: 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/F ...

  9. jsp、css中引入外部资源相对路径的问题

    在jsp页面中添加base,可用相对路径: <% String path = request.getContextPath(); String basePath = request.getSch ...

  10. Java基础——GUI编程(四)

    继前面的,这篇主要记录菜单和文件对话框的两个小练习,来熟悉一下方法的应用,一些简单的逻辑和Swing的相关简介,以及关于GUI基础的记录. 一.创建一个菜单 import java.awt.FlowL ...