• Selenium Video Tutorials

Selenium WebDriver - 處理Cookie



Selenium Webdriver 可用於處理 Cookie。我們可以使用 Selenium Webdriver 中的各種方法新增 Cookie,獲取具有特定名稱的 Cookie 以及刪除 Cookie。

處理 Cookie 的基本 Selenium 命令

下面討論了一些關於 Cookie 的方法:

  • addCookie() - 此方法用於向當前會話新增 Cookie。
  • getCookieNamed() - 此方法用於在所有建立的 Cookie 中獲取具有特定名稱的 Cookie。如果不存在具有作為引數傳遞的名稱的 Cookie,則返回空值。
  • getCookies() - 此方法用於獲取當前會話的所有 Cookie。如果當前瀏覽器會話已終止,此方法將返回錯誤。
  • deleteCookieNamed() - 此方法用於刪除具有特定名稱的 Cookie,該名稱作為引數傳遞給該方法。
  • deleteCookie() - 此方法用於使用作為引數傳遞給該方法的 Cookie 物件刪除 Cookie。
  • deleteAllCookies() - 此方法用於刪除當前瀏覽器會話中的所有 Cookie。

示例 1 - 獲取和新增 Cookie

讓我們來看一個示例,在這個示例中,我們將為現有的瀏覽上下文新增 Cookie 並獲取新增的 Cookie 的詳細資訊。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class AndGetCookie {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // open browser session
      driver.get("https://tutorialspoint.tw/selenium/practice/selenium_automation_practice.php");

      // Add cookie in key-value pairs
      driver.manage().addCookie(new Cookie("C1", "VAL1"));

      // Get added cookie with name
      Cookie c1 = driver.manage().getCookieNamed("C1");
      System.out.println("Cookie details: " + c1);

      // Closing browser
      driver.quit();
   }
}

輸出

Cookie details: C1=VAL1; path=/; 
domain=www.tutorialspoint.com;secure;; sameSite=Lax

Process finished with exit code 0

在上面的示例中,我們首先添加了一個名為 C1 的 Cookie,然後在控制檯中獲取其詳細資訊作為訊息 - Cookie details: C1=VAL1; path=/; domain=www.tutorialspoint.com;secure;; sameSite=Lax

最後,收到訊息 Process finished with exit code 0,表示程式碼成功執行。

示例 2 - 新增多個 Cookie

讓我們來看一個示例,在這個示例中,我們將新增多個 Cookie,然後獲取為現有的瀏覽上下文新增的 Cookie 的所有詳細資訊。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.Set;
import java.util.concurrent.TimeUnit;

public class AndGetCookies {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // open browser session
      driver.get("https://tutorialspoint.tw/selenium/practice/selenium_automation_practice.php");

      // Add two cookies in key-value pairs
      driver.manage().addCookie(new Cookie("C1", "VAL1"));
      driver.manage().addCookie(new Cookie("C2", "VAL2"));

      // get every cookie details
      Set<Cookie> c = driver.manage().getCookies();
      System.out.println("Cookie details are: " + c);

      // Closing browser
      driver.quit();
   }
}

輸出

Cookie details are: [C1=VAL1; path=/;
domain=www.tutorialspoint.com;secure;; sameSite=Lax, C2=VAL2; path=/; 
domain=www.tutorialspoint.com;secure;; sameSite=Lax]

在上面的示例中,我們首先添加了名為 C1C2 的多個 Cookie,然後在控制檯中獲取其詳細資訊作為訊息 - Cookie details are: [C1=VAL1; path=/; domain=www.tutorialspoint.com;secure;; sameSite=Lax, C2=VAL2; path=/; domain=www.tutorialspoint.com;secure;; sameSite=Lax]

示例 3 - 刪除 Cookie

讓我們來看一個示例,在這個示例中,我們將新增多個 Cookie,刪除一個 Cookie(使用 Cookie 名稱和物件),然後獲取為現有的瀏覽上下文新增的 Cookie 的所有詳細資訊。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.Set;
import java.util.concurrent.TimeUnit;

public class AndDeleteCookies {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // open browser session
      driver.get("https://tutorialspoint.tw/selenium/practice/selenium_automation_practice.php");

      // Add three cookies in key-value pairs
      driver.manage().addCookie(new Cookie("C1", "VAL1"));
      Cookie m = new Cookie("C2", "VAL2");
      driver.manage().addCookie(m);
      driver.manage().addCookie(new Cookie("C3", "VAL3"));

      // get every cookie details
      Set<Cookie> c = driver.manage().getCookies();
      System.out.println("Cookie details are: " + c);

      // delete a cookie with its name
      driver.manage().deleteCookieNamed("C3");

      // get every cookie details after deleting cookie C3
      Set<Cookie> c1 = driver.manage().getCookies();
      System.out.println("Cookie details after deleting C3 cookie are: " + c1);

      // delete a cookie with cookie object
      driver.manage().deleteCookie(m);

      // get every cookie details after deleting cookie C2
      Set<Cookie> c2 = driver.manage().getCookies();
      System.out.println("Cookie details after deleting C2 cookie are: " + c2);

      // Closing browser
      driver.quit();
   }
}

輸出

Cookie details are: [C3=VAL3; path=/; domain=www.tutorialspoint.com;secure;;
sameSite=Lax, C1=VAL1; path=/; domain=www.tutorialspoint.com;secure;; 
sameSite=Lax, C2=VAL2; path=/; domain=www.tutorialspoint.com;secure;; sameSite=Lax]
Cookie details after deleting C3 cookie are: [C1=VAL1; path=/; 
domain=www.tutorialspoint.com;secure;; sameSite=Lax, C2=VAL2; 
path=/; domain=www.tutorialspoint.com;secure;; sameSite=Lax]
Cookie details after deleting C2 cookie are: 
[C1=VAL1; path=/; domain=www.tutorialspoint.com;secure;; sameSite=Lax]

在上面的示例中,我們首先添加了名為 C1、C2 和 C3 的三個 Cookie。然後,使用 Cookie 名稱和物件刪除了 Cookie C3C2,並在刪除後檢索了 Cookie 詳細資訊。

示例 4 - 新增多個 Cookie 然後刪除

讓我們來看一個示例,在這個示例中,我們將新增多個 Cookie,然後刪除為現有的瀏覽上下文新增的所有 Cookie。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.Set;
import java.util.concurrent.TimeUnit;

public class AndDeleteAllCookies {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // open browser session
      driver.get("https://tutorialspoint.tw/selenium/practice/selenium_automation_practice.php");

      // Add two cookies in key-value pairs
      driver.manage().addCookie(new Cookie("C1", "VAL1"));
      driver.manage().addCookie(new Cookie("C3", "VAL3"));

      // get every cookie details
      Set<Cookie> c = driver.manage().getCookies();
      System.out.println("Cookie details are: " + c);

      // delete a cookie with its name
      driver.manage().deleteAllCookies();

      // get every cookie details after deleting cookie C2
      Set<Cookie> c2 = driver.manage().getCookies();
      System.out.println("Cookie details after deleting all cookies: " + c2);

      // Closing browser
      driver.quit();
   }
}

輸出

Cookie details are: [C3=VAL3; path=/; domain=www.tutorialspoint.com;secure;;
   sameSite=Lax, C1=VAL1; path=/; 
   domain=www.tutorialspoint.com;secure;; sameSite=Lax]
Cookie details after deleting all cookies: []

在上面的示例中,我們首先添加了名為 C1C2 的兩個 Cookie。然後,我們刪除了所有 Cookie。

廣告
© . All rights reserved.