zl程序教程

您现在的位置是:首页 >  后端

当前栏目

selenium-webdriver(python) (十三) -- cookie处理

PythonCookie 处理 -- selenium 十三 WebDriver
2023-09-14 08:57:55 时间
add_cookie(cookie_dict)  向cookie添加会话信息 delete_cookie(name)   删除特定(部分)的cookie delete_all_cookies()    删除所有cookie

 

通过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.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。