在驗證瀏覽器中cookie是否正確時,有時基於真實cookie的測試是無法通過白盒和集成測試進行的。Webdriver提供了操作Cookie的相關方法,可以讀取,添加和刪除cookie信息。
文本webdriver操作cookie()的方法:
get_cookie(): 獲得所有cookie信息。
get_cookie(name):返回字典的key為name的cookie
add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典對象,必須有name和value值。
delete_cookie(name,optionsString):刪除cookie信息。“name”是要刪除的cookie的名稱。“optionsString”是該cookie的選項,目前支持的選項包括“路徑”,“域”
delete_all_cookies():刪除所有cookie信息。
獲取cookie代碼如下:
1 from selenium import webdriver 2 driver = webdriver.Firefox() 3 # driver.get("http://member.rltxtest.xyz/login/login.html") 4 driver.get("http://www.youdao.com") 5 6 # 獲取cookie信息 7 cookies = driver.get_cookies() 8 # 打印獲取的cookies信息 9 print(cookies) 10 11 driver.quit()
添加cookie的代碼:
1 from selenium import webdriver 2 3 driver = webdriver.Firefox () 4 # driver.get("http://member.rltxtest.xyz/login/login.html") 5 driver.get ("http://www.youdao.com") 6 # 向cookie中name和value中添加回話信息 7 driver.add_cookie ({'name': 'key-aaaaaaa'}, {'value': 'value-bbbbb'}) 8 9 # 遍歷cookie中name和value信息並打印對應的信息,並包括添加對應的信息 10 for cookie in driver.get_cookies (): 11 print("%s->%s" % (cookie['name'], cookie['value'])) 12 13 driver.quit ()
記錄cookie
通過向瀏覽器中添加cookie可以繞過登錄的驗證碼。在登錄的時候勾選記住密碼,當下次訪問該網站時就默認處於登錄狀態了。記住密碼功能其實就記錄了瀏覽器的cookie中。通過webdriver來操作瀏覽器的cookie,可以通過add_cookie()方法將用戶名密碼寫入瀏覽器cookie,當再次訪問時,服務器將直接讀取瀏覽器的cookie進行登錄。
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Firefox() 5 driver.get("http://192.168.1.51/oneCard/login") 6 #將用戶名密碼寫入瀏覽器cookie中 7 driver.add_cookie({'name':'username','value':'super'}) 8 driver.add_cookie({'name':'password','value':'asd,./123*.'}) 9 #再次訪問網站,將會自動登錄 10 driver.get("http://192.168.1.51/oneCard/login")