有時候咱們須要驗證瀏覽器中是否存在某個cookie,由於基於真實的cookie 的測試是沒法經過白盒和
集成測試完成的。WebDriver 提供了操做Cookie 的相關方法能夠讀取、添加和刪除cookie 信息。
WebDriver 操做cookie 的方法有:
getCookies() 得到全部cookie 信息
addCookie(cookie_dict) 添加cookie,必須有name 和value 值
deleteAllCookies() 刪除全部cookie 信息
deleteCookieNamed(String name)。刪除name 這個cookie
getCookieNamed(String name)。返回特定name 的cookie 值java
下面經過getCookies()來獲取當前瀏覽器的cookie 信息。chrome
package com.mypro.jase; import java.util.Set; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class cookie { public static void main(String[] args){ WebDriver driver = new ChromeDriver(); driver.get("http://www.youdao.com"); //得到cookie Set<Cookie> coo = driver.manage().getCookies(); //打印cookie System.out.println(coo); driver.quit(); } }
執行結果:瀏覽器
>>> ================================ RESTART ================================
>>>
[JSESSIONID=abc6Pheyjzl7M_fdLPy3u;
path=/;
domain=www.youdao.com,
OUTFOX_SEARCH_USER_ID=-1975491366@183.61.23.26;
expires=星期四, 01 六月2045 10:08:10 CST;
path=/;
domain=.youdao.com]cookie
經過打印結果能夠看出,cookie 是以字典的形式進行存放的,知道了cookie 的存放形式,那麼咱們就
能夠按照這種形式向瀏覽器中寫入cookie 信息。dom
import java.util.Set; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class cookie { public static void main(String[] args){ WebDriver driver = new ChromeDriver(); driver.get("http://www.youdao.com"); Cookie c1 = new Cookie("name", "key-aaaaaaa"); Cookie c2 = new Cookie("value", "value-bbbbbb"); driver.manage().addCookie(c1); driver.manage().addCookie(c2); //刪除全部cookie driver.manage().deleteAllCookies(); //得到cookie Set<Cookie> coo = driver.manage().getCookies(); //打印cookie System.out.println(coo); driver.quit(); } }
執行結果:
>>> ================================ RESTART ================================
>>>
[name=key-aaaaaaa;
path=/;
domain=www.youdao.com,
value=value-bbbbbb;
path=/;
domain=www.youdao.com]測試
從打印結果能夠看到最後一條cookie 信息是在腳本執行過程當中經過addCookie()方法添加的。經過遍
歷獲得的所cookie 信息從而找到key 爲「name」和「value」的特定cookie 的value。
那麼在什麼狀況下會用到cookie 的操做呢?例如開發人員開發一個功能,當用戶登陸後,會將用戶的
用戶名寫入瀏覽器cookie,指定的key 爲「username」,那麼咱們就能夠經過getCookies() 找到useranme,
打印vlaue,若是找不到username 或對應的value 爲空,那麼說明保存瀏覽器的cookie 是有問題的。
deleteAllCookies()的使用也很簡單,前者經過name 值到一個特定的cookie 將其刪除,後者直接刪除瀏覽器中的全部cookies()信息。ui