有時候我們需要驗證瀏覽器中Cookie是否正確, 因為基於真實Cookie的測試是無法通過白盒測試和集成測試進行的。WebDriver提供了操作Cookie的相關方法可以讀取、 添加和刪除Cookie信息。
WebDriver 操作Cookie的方法:
- getCookies() 獲得所有 cookie 信息。
- getCookieNamed(String name) 返回字典的key為“name”的Cookie信息。
- addCookie(cookie dict) 添加Cookie。“cookie_dict”指字典對象,必須有 name和value值。
- deleteCookieNamed(String name) 刪除Cookie 信息。 “name”是要刪除的 cookie的名稱; “optionsString” 是該Cookie的選項,目前支持的選項包括“路徑” , “域” 。
- deleteAllCookies() 刪除所有 cookie 信息。
下面通過 geCookies()來獲取當前瀏覽器的 cookie 信息。
import java.util.Set;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.Cookie;
public class CookieDemo {
public static void main(String[] args){
WebDriver driver = new ChromeDriver();
driver.get("https://www.baidu.com");
Cookie c1 = new Cookie("name", "key-aaaaaaa");
Cookie c2 = new Cookie("value", "value-bbbbbb");
driver.manage().addCookie(c1);
driver.manage().addCookie(c2);
//獲得 cookie
Set<Cookie> coo = driver.manage().getCookies();
System.out.println(coo);
//刪除所有 cookie
//driver.manage().deleteAllCookies();
driver.quit();
}
}
打印結果:
[BIDUPSID=82803D3E2DAD0F5342D22C8F96B9E088; expires=星期六, 24 二月 208512:40:10 CST; path=/; domain=.baidu.com, name=key-aaaaaaa; path=/;domain=www.baidu.com, PSTM=1486301167; expires=星期六, 24 二月 2085 12:40:10 CST;path=/; domain=.baidu.com,H_PS_PSSID=1437_21094_21943_22023; path=/;domain=.baidu.com, BD_UPN=12314753; expires=星期三, 15 二月 2017 09:26:04 CST;path=/; domain=www.baidu.com, value=value-bbbbbb; path=/;domain=www.baidu.com,BAIDUID=82803D3E2DAD0F5342D22C8F96B9E088:FG=1; expires=星期六, 24 二月 208512:40:10 CST; path=/; domain=.baidu.com, BD_HOME=0; path=/;domain=www.baidu.com, __bsi=16852840641557463410_00_0_I_R_1_0303_C02F_N_I_I_0;expires=星期日, 05 二月 2017 09:26:10 CST; path=/; domain=.www.baidu.com]