Selenium2+python自动化40-cookie相关操作

前言

虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。

登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录

一、获取cookies:get_cookies()

1.获取cookies方法直接用:get_cookies()

2.先启动浏览器,获取cookies,打印出来发现是空:[]

3.打开博客首页后,重新获取cookies,打印出来,就有值了

二、登录后的cookies

1.先登录博客园(这里登录用自己的账号和密码吧)

2.重新获取cookies,发现跟之前获取的不一样了

3.主要是找到这一个cookie,发现它的name和value发生了变化,这就是未登录和已登录的区别了(对比上下两张图)

{u‘name‘: u‘.CNBlogsCookie‘, u‘value‘: u‘B7813EBA142142CE88CC8C0B33B239F566xxxx‘}

三、获取指定name的cookie:driver.get_cookie(name)

1.获取cookies发现里面有多个cookie,有时候我们只需要其中的一个,把重要的提出来,比如登录的cookie

2.这里用get_cookie(name),指定对应的cookie的name值就行了,比如博客园的:.CNBlogsCookie

四、清除指定cookie:delete_cookie()

1.为了进一步验证上一步获取到的就是登录的cookie,可以删除它看看页面什么变化

2.删除这个cookie后刷新页面,发现刚才的登录已经失效了,变成未登录状态了

五、清除所有cookies:delete_all_cookies()

1.清除所有cookies后登录状态也失效了,cookies为空[]

六、cookie操作的几个方法

1.get_cookies():获取所有cookies

2.driver.get_cookie(name):获取指定name的cookie:

3.清除指定cookie:delete_cookie()

4.delete_all_cookies():清除所有cookies

5.add_cookie(cookie_dict):添加cookie的值

(第五个方法可以用于绕过验证码登录,下篇详细介绍)

七、参考代码

# coding:utf-8
from selenium import webdriver
import time

driver = webdriver.Firefox()
# 启动浏览器后获取cookies
print driver.get_cookies()
driver.get("http://www.cnblogs.com/yoyoketang/")
# 打开主页后获取cookies
print driver.get_cookies()
# 登录后获取cookies
url = "https://passport.cnblogs.com/user/signin"
driver.get(url)
driver.implicitly_wait(30)
driver.find_element_by_id("input1").send_keys(u"上海-悠悠")
driver.find_element_by_id("input2").send_keys(u"xxx")
driver.find_element_by_id("signin").click()
time.sleep(3)
print driver.get_cookies()

# 获取指定name的cookie
print driver.get_cookie(name=".CNBlogsCookie")

# 清除指定name的cookie
driver.delete_cookie(name=".CNBlogsCookie")
print driver.get_cookies()
# 为了验证此cookie是登录的,可以删除后刷新页面
driver.refresh()

# 清除所有的cookie
driver.delete_all_cookies()
print driver.get_cookies()

原文地址:https://www.cnblogs.com/jason89/p/8997723.html

时间: 2024-11-09 06:19:46

Selenium2+python自动化40-cookie相关操作的相关文章

Selenium2+python自动化40-cookie相关操作【转载】

前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录. 登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录 一.获取cookies:get_cookies() 1.获取cookies方法直接用:get_cookies() 2.先启动浏览器,获取cookies,打印出来发现是空:[] 3.打开博客首页后,重新获取cookies,打印出来,就有值了 二.登录后的cookies 1.先登录博客

Selenium2+python自动化41-绕过验证码(add_cookie)

前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级别不高,那就需要提高级别了. 对应验证码,要么是让开发在测试环境弄个万能的验证码,如:1234,要么就是尽量绕过去,如本篇介绍的添加cookie的方法. 一.fiddler抓包 1.前一篇讲到,登录后会生成一个已登录状态的cookie,那么只需要直接把这个值添加到cookies里面就可以了. 2.可以先手动登录一次,然后抓取这个cookie,

Selenium2+python自动化41-绕过验证码(add_cookie)【转载】

前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级别不高,那就需要提高级别了. 对于验证码,要么是让开发在测试环境弄个万能的验证码,如:1234,要么就是尽量绕过去,如本篇介绍的添加cookie的方法. 一.fiddler抓包 1.前一篇讲到,登录后会生成一个已登录状态的cookie,那么只需要直接把这个值添加到cookies里面就可以了. 2.可以先手动登录一次,然后抓取这个cookie,

Selenium2+python自动化64-100(大结局)[已出书]

前言 小编曾经说过要写100篇关于selenium的博客文章,前面的64篇已经免费放到博客园供小伙伴们学习,后面的内容就不放出来了,高阶内容直接更新到百度阅读了. 一.百度阅读地址: 1.本书是在线阅读的,是实时在线阅读,电子书有个好处就是能及时更新内容. (当然购买此书的话,凭流水单号进QQ读书群:372471871可获取一本对应的PDF文档,方便阅读学习) 2.百度阅读地址:https://yuedu.baidu.com/ebook/0f6a093b7dd184254b35eefdc8d37

Selenium2+python自动化39-关于面试的题

前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点. 一.selenium中如何判断元素是否存在? 首先selenium里面是没有这个方法的,判断元素存在需要自己写一个方法了. 元素存在有几种形式,一种是页面有多个元素属性重复的,这种直接操作会报错的:还有一种是页面隐藏的元素操作也会报错 判断方法参考这篇:Selenium2+python自动化36-判断元素存在 二.selenium中hidden或者是displa

Selenium2+python自动化47-判断弹出框存在(alert_is_present)

前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(expected_conditions)讲expected_conditions这个模块 一.判断alert源码分析 class alert_is_present(object):    """ Expect an alert to be present.""&q

Selenium2+python自动化33-文件上传(send_keys)

前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库. 本篇以博客园的上传图片为案例,通过send_keys()方法解决文件上传问题 一.识别上传按钮 1.点开博客园编辑器里的图片上传按钮,弹出”上传本地图片”框. 2.用firebug查看按钮属性,这种上传图片按钮

Selenium2+python自动化,判定元素是否存在

Selenium2+python自动化,判定元素是否存在 前言 最近有很多小伙伴在问如何判断一个元素是否存在,这个方法在selenium里面是没有的,需要自己写咯. 元素不存在的话,操作元素会报错,或者元素有多个,不唯一的时候也会报错.本篇介绍两种判断元素存在的方法. 一.find_elements方法判断 1.find_elements方法是查找页面上所有相同属性的方法,这个方法其实非常好用,能熟练掌握技巧的不多,小编这次就发挥它的功效 2.由于元素定位的方法很多,所以判断的时候定位方法不统一

Selenium2+python自动化28-table定位【转载】

前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table 2.源码如下:(用txt文本保存,后缀改成html) <!DOCTYPE html><meta charset="UTF-8"> <!-- for HTML5 --><meta http-equiv="Content-Type"