Selenium2+python自動化40-cookie相關操作

來源:互聯網
上載者:User

標籤:通過   fir   val   自己的   前言   user   firefox   刪除   _id   

前言

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

 

Selenium2+python自動化40-cookie相關操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.