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


學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429

另外成立了python接口自動化QQ群:226296743

selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例

(購買此書送對應PDF版本)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM