可以把cookie理解為自己賬戶的身份證。因為http協議是無狀態的,上一個請求和下一個請求沒有關系。但是有時需要有關聯。比如登錄之后,才能進行操作這樣的設置。這個就是cookie在起作用。登錄成功時,服務器會給瀏覽器一個cookie,瀏覽器會解析存在本地。然后同一個網站,下一次請求時就會把這個cookie帶上,告訴服務器是哪個用戶在操作。在關閉瀏覽器時cookie有效期結束。
WebDriver提供了一些用來操作cookie的方法:
get_cookies():獲得cookie所有信息,返回的是一個字典
get_cookie(key):獲取返回cookie中,某一個key的值
add_cookie(cookie_dict):手動添加cookie,需要傳一個字典進去,用cookie_dict來接收,字典的鍵必須要有‘name’和‘value’
delete_cookie(name):刪除cookie信息,name是要刪除的cookie名稱
delete_all_cookies():刪除所有cookie信息
一般就add_cookie比較常用。可以用這個來繞過登錄。下面來看用cookie登錄百度的實例
因為很多網站現在通過selenium去模擬登錄的話,都會有安全提示,要求驗證是否本人登錄啥的。所以先通過手動登錄一下來拿到cookie。然后再來實驗繞過登錄。
打開百度首頁,點擊登錄按鈕跳轉到登錄頁面,把用戶名密碼輸完了之后。F12呼出開發者工具,然后點擊登錄。
登錄成功后,找到www.baidu.com這個請求。看下右側然后往下拉
找到Cookie。我們需要的是最后BDUSS鍵值對的信息。
add_cookie也可以這樣寫