selenium webdriver處理瀏覽器Cookie


有時候我們需要驗證瀏覽器中是否存在某個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 值


下面通過getCookies()來獲取當前瀏覽器的cookie 信息。

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 信息。

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()信息。

 


免責聲明!

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



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