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

 

本節重點:web

  • driver.get_cookies() 得到cookie信息
  • add_cookie(cookie_dict)  向cookie添加會話信息
  • delete_cookie(name)   刪除特定(部分)cookie
  • delete_all_cookies()    刪除全部cookie

 

經過webdriver 操做cookie 是一件很是有意思的事兒,有時候咱們須要瞭解瀏覽器中是否存在了某個cookie 信息,webdriver 能夠幫助咱們讀取、添加,刪除cookie信息。瀏覽器

 

 

打印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()

運行打印信息:dom

[{u'domain': u'.youdao.com', u'secure': False, u'value': u'aGFzbG9nZ2VkPXRydWU=', u'expiry': 1408430390.991375, u'path': u'/', u'name': u'_PREF_ANONYUSER__MYTH'}, {u'domain': u'.youdao.com', u'secure': False, u'value': u'1777851312@218.17.158.115', u'expiry': 2322974390.991376, u'path': u'/', u'name': u'OUTFOX_SEARCH_USER_ID'}, {u'path': u'/', u'domain': u'www.youdao.com', u'name': u'JSESSIONID', u'value': u'abcUX9zdw0minadIhtvcu', u'secure': False}]

 

 

對cookie的操做ui

 

上面的方式打印了全部cookie信息表,太多太亂,咱們只想有真對性的打印本身想要的信息,看下面的例子spa

#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'])


# 下面能夠經過兩種方式刪除cookie
# 刪除一個特定的cookie
driver.delete_cookie("CookieName")
# 刪除全部cookie
driver.delete_all_cookies()

time.sleep(2)
driver.close()

運行打印信息:code

YOUDAO_MOBILE_ACCESS_TYPE -> 1
_PREF_ANONYUSER__MYTH -> aGFzbG9nZ2VkPXRydWU=
OUTFOX_SEARCH_USER_ID -> -1046383847@218.17.158.115
JSESSIONID -> abc7qSE_SBGsVgnVLBvcu
key-aaaaaaa -> value-bbbb  # 這一條是咱們本身添加的

 

 

 

經過博客園登錄來分析cookieblog

 

#coding=utf-8

from selenium import webdriver
import time

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()

運行打印信息:utf-8

#第一次執行信息
>>> 
[{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value': u'C709F15A8BC0B3E8D9AD1F68B371053849F7FEE31F73F1292A150932FF09A7B0D4A1B449A32A6B24AD986CDB05B9998471A37F39C3B637E85E481AA986D3F8C187D7708028F9D4ED3B326B46DC43B416C47B84D706099ED1D78B6A0FC72DCF948DB9D5CBF99D7848FDB78324', u'expiry': None, u'path': u'/', u'secure': False}]
>>> ========================= RESTART ================================
#第二次執行信息
>>> 
[{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value': u'5BB735CAD62E99F8CCB9331C32724E2975A0150D199F4243AD19357B3F99A416A93B2E803F4D5C9D065429713BE8B5DB4ED760EDCBAF492EABE2158B3A6FBBEA2B95C4DA3D2EFEADACC3247040906F1462731F652199E2A8BEFD8A9B6AAE87CF3059A3CAEB9AB0D8B1B7AD2A', u'expiry': 1379502502, u'path': u'/', u'secure': False}]
>>> 

 

第一次註釋掉勾選保存密碼的操做,第二次經過勾選保存密碼得到cookie信息 ;來看兩次運行結果的cookie的何不一樣:element

u'expiry': None

u'expiry': 1379502502

經過對比發現,不勾選保存密碼時expiry 的值爲none ; 那麼就能夠初步判斷勾選保存密碼的操做在cookie 中起到了做用。至因而否準確能夠再作進一步的分析。

相關文章
相關標籤/搜索