selenium3+python自動化12-cookie相關操作(獲取和刪除)


前言

在進行接口測試或者自動化測試時,有時就要登錄好多次,特別麻煩,那能不能不要一遍一遍輸入賬號,直接跳過登錄頁面進行操作。這個時候就要用到cookie,這次主要整理cookie的一些操作,包含獲取cookie、刪除cookie

題外話,今天去公司辦理辭職手續,遇到一個無賴公司真的讓人頭大又無語。好多小公司都抗不過這次的疫情,看似就業形勢不好,但是是挑戰也是機遇。建議換工作時,條件允許的情況下,在職狀態下尋找下家,最好找一個大公司,可靠正規一點。

一、獲取cookies:get_cookies()

1.獲取cookies直接的方法是:get_cookies()

2.以自己電腦上個的一個OA網站為例,先打開瀏覽器,獲取cookies,打印出來發現是空的:[ ]

3.輸入網址后,獲取cookies,打印出來是有值的

4.輸入賬號和密碼后,登錄系統,獲取cookies,打印出來跟之前獲取的有點不一樣

 二、獲取指定name的cookie值:get_cookie(name)

1.get_cookies()獲取到許多的cookie,但是只想獲取其中的一個cookie值,那就用到get_cookie(name)

2.指定對應的cookie的name值就行

 三、刪除所有cookies:delete_all_cookies()

1.刪除所有cookies,獲取的cookies為空,刷新頁面后,退出登錄狀態。

 四、刪除指定name的cookie:delete_cookie(name)

1.最后一個獲取的cookies列表中就不包含已經刪除的cookie

2.按照原作者的博文講解,理應刷新頁面后登錄失效,變成未登錄狀態,但是嘗試了好幾遍都是在登錄狀態,用排除法進行原因查找,發現只有刪除掉name為“JSESSIONID”的cookie值后,才退出登錄頁面,刪除其他cookie就一直在登錄頁面。但是“JSESSIONID”的cookie在輸入網址后就存在了,又不是登錄后的cookie。(這里自己沒有搞明白)

 五、參考代碼

 1 from selenium import webdriver
 2 from time import sleep
 3 driver=webdriver.Chrome()
 4 #啟動瀏覽器獲取cookies
 5 print(driver.get_cookies())
 6 driver.get('http://127.0.0.1:8080/oa/')
 7 #打開主頁后獲取cookies
 8 print(driver.get_cookies())
 9 #登錄后獲取cookies
10 loginInputs=driver.find_elements_by_class_name('loginInput')
11 loginInputs[0].send_keys('wangd')
12 loginInputs[1].send_keys('w1234567')
13 driver.find_element_by_id('button_submit').click()
14 sleep(2)
15 print(driver.get_cookies())
16 
17 #獲取指定cookie
18 print(driver.get_cookie(name='Cookie_Lang_OA'))
19 
20 # #刪除指定cookie
21 # driver.delete_cookie(name='LoginId_OA')
22 driver.delete_cookie(name='Cookie_Lang_OA')
23 # driver.delete_cookie(name='JSESSIONID')
24 print(driver.get_cookies())
25 #刷新驗證
26 driver.refresh()
27 
28 # #刪除所有cookies
29 # driver.delete_all_cookies()
30 # print(driver.get_cookies())
31 # driver.refresh()
32 
33 sleep(2)
34 driver.quit()

參考博客:https://www.cnblogs.com/yoyoketang/p/6535391.html


免責聲明!

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



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