(一)方法

方法

简单说明

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的区别

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

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

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

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

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

 

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

  1. from selenium import webdriver
  2. import time
  3. driverOption = webdriver.ChromeOptions()
  4. #把这个C:\Users\123456\AppData\Local\Google\Chrome\User Data替换成自己的就行了
  5. #123456把这个换成本地计算机的用户名应该就是了
  6. driverOption.add_argument(r'user-data-dir=C:\Users\123456\AppData\Local\Google\Chrome\User Data')
  7. driver = webdriver.Chrome(chrome_options=driverOption)
  8. driver.implicitly_wait(5)
  9. driver.maximize_window()
  10. driver.get('https://www.cnblogs.com/')
  11. time.sleep(3)
  12. 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. git merge 的过程及冲突处理演示

    master分支上有一个1.txt文件,进行修改后提交 $ cat 1.txt 1 11 12 $ echo 13 >> 1.txt $ git commit -a -m "mo ...

  2. django2笔记:路由path语法

    django2笔记:路由path语法 9月23,Django 发布了2.0a1版本,这是一个 feature freeze 版本,如果没有什么意外的话,2.0正式版不会再增加新的功能了.按照以往的规律 ...

  3. Configuration problem: Failed to import bean definitions from relative location

    问题现象: 最近开始做新需求,然后在Tomcat上部署项目时,出现了如下报错: [12-05 09:54:27,161 ERROR] ContextLoader.java:351 - Context ...

  4. Jenkins持久化集成使用

    1.概述 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 持续的软件版本发布/测试项目 监控外部调用执行的工作 2.搭建 2.1环境准备 首先我们要准备搭建的环 ...

  5. MVC源码分析 - Error过滤器

    接 上一篇 内容, 这里先看一下错误处理过滤器. 在看此部分之前, 先看看MVC已经提供的功能吧. 一. MVC 自带功能 1. 配置方法 <system.web> <!--mode ...

  6. Linux-(inotify-tools&rsync)

    inotifywait命令 mac中的是:fswatch,fsevents-tools. 1.命令格式: inotifywait [参数] [events] [targetDir] 2.命令功能: 平 ...

  7. 利用latex制作个人简历

    转自: http://www.cnblogs.com/panpei/ 前些日子,有点无聊,就在网上逛逛技术大牛的blogs,发现很多大牛都喜欢用pdf版式的简历,发现这种版式的简历排版非常漂亮简洁.深 ...

  8. Spring Security基本配置

    Spring Security 是一个功能强大且可高度自定义的身份验证和访问控制框架. 它是保护基于Spring的应用程序的事实上的标准.Spring Security 是一个专注于为Java应用程序 ...

  9. .netcore入门

    开发环境:windows    编辑器: Visual Studio Code 环境安装: .Net Core 1.1 SDK     https://www.microsoft.com/net/co ...

  10. SQL Server T—SQL 视图 事务

    一 视图 视图是存储在数据库中的查询的SQL 语句, 视图是从一个或多个表或视图中导出的表,是一张虚表,只能对视图进行查询,不能增.删.改. 对视图进行修改要在相应的基本表中进行修改,修改会自动的反应 ...