selenium-webdriver(python) (十三) -- cookie处理
2023-09-14 08:57:55 时间
add_cookie(cookie_dict) 向cookie添加会话信息
delete_cookie(name) 删除特定(部分)的cookie
delete_all_cookies() 删除所有cookie
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()
Selenium2+python自动化40-cookie相关操作 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。 登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录 一、获取cookies:get_cookies()
Selenium2+python自动化18-加载Firefox配置 前言 有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。 加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载, profile_directory既为浏览器配置文件的路径地址 一、遇到问题 1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢? 2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。
通过webdriver 操作cookie 是一件非常有意思的事儿,有时候我们需要了解浏览器中是否存在了某个cookie 信息,webdriver 可以帮助我们读取、添加,删除cookie信息。
打印cookie信息
#coding=utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.youdao.com") # 获得cookie信息 cookie= driver.get_cookies() #将获得cookie的信息打印 print cookie driver.quit()
运行打印信息:
[{udomain: u.youdao.com, usecure: False, uvalue: uaGFzbG9nZ2VkPXRydWU=, uexpiry: 1408430390.991375, upath: u/, uname: u_PREF_ANONYUSER__MYTH}, {udomain: u.youdao.com, usecure: False, uvalue: u1777851312@218.17.158.115, uexpiry: 2322974390.991376, upath: u/, uname: uOUTFOX_SEARCH_USER_ID}, {upath: u/, udomain: uwww.youdao.com, uname: uJSESSIONID, uvalue: uabcUX9zdw0minadIhtvcu, usecure: False}]
对cookie的操作
上面的方式打印了所有cookie信息表,太多太乱,我们只想有真对性的打印自己想要的信息,看下面的例子
#coding=utf-8 from selenium import webdriver import time driver = webdriver.Firefox() driver.get("http://www.youdao.com")
#向cookie的name 和value添加会话信息。 driver.add_cookie({name:key-aaaaaaa, value:value-bbbb}) #遍历cookies中的name 和value信息打印,当然还有上面添加的信息 for cookie in driver.get_cookies(): print "%s - %s" % (cookie[name], cookie[value])
_PREF_ANONYUSER__MYTH - aGFzbG9nZ2VkPXRydWU= OUTFOX_SEARCH_USER_ID - -1046383847@218.17.158.115 JSESSIONID - abc7qSE_SBGsVgnVLBvcu key-aaaaaaa - value-bbbb # 这一条是我们自己添加的
通过博客园登陆来分析cookie
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()
运行打印信息:
#第一次执行信息 [{udomain: u.cnblogs.com, uname: u.DottextCookie, uvalue: uC709F15A8BC0B3E8D9AD1F68B371053849F7FEE31F73F1292A150932FF09A7B0D4A1B449A32A6B24AD986CDB05B9998471A37F39C3B637E85E481AA986D3F8C187D7708028F9D4ED3B326B46DC43B416C47B84D706099ED1D78B6A0FC72DCF948DB9D5CBF99D7848FDB78324, uexpiry: None, upath: u/, usecure: False}] ========================= RESTART ================================ #第二次执行信息 [{udomain: u.cnblogs.com, uname: u.DottextCookie, uvalue: u5BB735CAD62E99F8CCB9331C32724E2975A0150D199F4243AD19357B3F99A416A93B2E803F4D5C9D065429713BE8B5DB4ED760EDCBAF492EABE2158B3A6FBBEA2B95C4DA3D2EFEADACC3247040906F1462731F652199E2A8BEFD8A9B6AAE87CF3059A3CAEB9AB0D8B1B7AD2A, uexpiry: 1379502502, upath: u/, usecure: False}]
第一次注释掉勾选保存密码的操作,第二次通过勾选保存密码获得cookie信息 ;来看两次运行结果的cookie的何不同:
uexpiry: None
uexpiry: 1379502502
通过对比发现,不勾选保存密码时expiry 的值为none ; 那么就可以初步判断勾选保存密码的操作在cookie 中起到了作用。至于是否准确可以再做进一步的分析。
Selenium2+python自动化40-cookie相关操作 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。 登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录 一、获取cookies:get_cookies()
Selenium2+python自动化18-加载Firefox配置 前言 有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。 加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载, profile_directory既为浏览器配置文件的路径地址 一、遇到问题 1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢? 2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。
相关文章
- 使用Python进行描述性统计
- Python yield使用浅析
- Python 自动登录网站(处理Cookie)
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- Python每日一练(20230327)
- Python爬虫开发:cookie的使用案例
- Python之matplotlib:基于matplotlib库利用python语言实现一张画布显示多张图的多种方法
- Python语言学习:python语言代码调试—异常处理之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(LabelFrame/Checkbutton/Radiobutton)
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
- Python:python代码编程带你玩转双色球(了解双色球的概率逻辑)
- Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
- Python之多线程:python多线程设计之同时执行多个函数命令详细攻略
- Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
- 已解决selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain: Cookie ‘
- 〖Python自动化办公篇⑲〗 - python实现邮件自动化 - 邮件发送
- python 减少可调用对象的参数个数
- Python标准库:内置函数slice(stop) slice(start, stop[, step])
- python里使用difflib库的比较文本时丢弃不要的字符
- python自动化测试学习-Python测试框架之unittest和pytest
- 长文总结 | Python基础知识点,建议收藏
- 使用 Consul 作为 Python 微服务的配置中心
- 运维开发-python自动化-bottle库
- python使用技巧(二十):super()方法
- macOS python opencv 验证码 垂直投影