Java
 Computer >> コンピューター >  >> プログラミング >> Java

Selenium WebDriver(Java)でブラウザのCookieを削除・クリアする方法

Seleniumでは、テストの実行中にブラウザへ保存されたCookieを柔軟に操作できます。Cookieの削除は、ログイン状態のリセットやセッション情報の初期化など、テストの前処理として頻繁に活用される重要なテクニックです。

本記事では、Javaバインディングを使用したCookie削除の方法として、特定の名前のCookieだけを削除する方法と、現在のドメインに存在するすべてのCookieを一括で削除する方法の2つを、実際のコード例とともに解説します。

deleteCookieNamedメソッドで特定のCookieを削除する

deleteCookieNamedメソッドは、指定した名前を持つCookieのみを削除します。削除対象となるCookieの名前を引数として渡します。基本的な流れは「Cookieを追加 → 取得 → 削除」の順になります。

構文

driver.manage().deleteCookieNamed("foo");

deleteAllCookiesメソッドで全Cookieを削除する

deleteAllCookiesメソッドは、現在のドメインに存在するすべてのCookieをまとめて削除します。こちらも同様に、Cookieを追加した後に取得・削除を行う流れで動作を確認できます。

構文

driver.manage().deleteAllCookies();

サンプルコード1:deleteCookieNamedを使用する場合

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

public class DeleteCookiesViaName {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver",
        "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.tutorialspoint.com/index.htm");
        // 4秒間の待機
        driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
        // Cookieの名前と値を設定
        Cookie c = new Cookie("test", "selenium");
        Cookie r = new Cookie("subject", "Java");
        // Cookieの追加
        driver.manage().addCookie(c);
        driver.manage().addCookie(r);
        // Cookieの取得
        Set<Cookie> ck = driver.manage().getCookies();
        // Cookieを反復処理しながら表示
        for (Cookie cookie : ck) {
            System.out.println("Cookie Name : " + cookie.getName());
            System.out.println("Cookie Value : " + cookie.getValue());
            // 名前を指定してCookieを削除
            driver.manage().deleteCookieNamed(cookie.getName());
        }
        // 削除後のCookieを取得して件数を表示
        Set ch = driver.manage().getCookies();
        System.out.println("Cookie count after delete: " + ch.size());
    }
}

このコードでは、追加された各Cookieの名前と値を出力しながら、deleteCookieNamed()を呼び出して順番に削除しています。最後に削除後のCookie件数を表示することで、削除が正しく行われたことを確認できます。

サンプルコード2:deleteAllCookiesを使用する場合

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

public class DeleteCookiesAll {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver",
        "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.tutorialspoint.com/index.htm");
        // 4秒間の待機
        driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
        // Cookieの名前と値を設定
        Cookie c = new Cookie("test", "selenium");
        Cookie r = new Cookie("subject", "Java");
        // Cookieの追加
        driver.manage().addCookie(c);
        driver.manage().addCookie(r);
        // Cookieの取得と表示
        Set<Cookie> ck = driver.manage().getCookies();
        for (Cookie cookie : ck) {
            System.out.println("Cookie Name : " + cookie.getName());
            System.out.println("Cookie Value : " + cookie.getValue());
        }
        // すべてのCookieを一括削除
        driver.manage().deleteAllCookies();
        // 削除後のCookieを取得して件数を表示
        Set ch = driver.manage().getCookies();
        System.out.println("Cookie count after delete: " + ch.size());
    }
}

この例では、まず追加したCookieの一覧を表示し、その後deleteAllCookies()を一度呼び出すだけで、ドメイン上の全Cookieをまとめて削除しています。

実行結果

いずれのコードも実行すると、削除前に保存されていたCookieの名前と値がコンソールに出力され、削除後のCookie件数が「0」と表示されます。

Selenium WebDriver(Java)でブラウザのCookieを削除・クリアする方法

まとめ

  • 特定のCookieだけを消したい場合はdeleteCookieNamed()を使用する
  • ドメイン内のCookieをすべて消したい場合はdeleteAllCookies()を使用する
  • 削除後はgetCookies()で件数を確認すると、処理が成功したか検証できる
  1. 【Microsoft Edge】キャッシュとCookieをクリアする方法を徹底解説

    Edgeブラウザのキャッシュをクリアする方法をお探しですか?インターネットでウェブサイトを閲覧すると、キャッシュやCookieがバックグラウンドで自動的に作成され、ハードディスクに保存されます。これはすべてのブラウザで起こる現象であり、一度訪れたページの2回目以降の読み込みが速くなるなど、便利な面もあります。しかし、キャッシュやCookieにはいくつかのデメリットもあり、そのひとつとして、Webページの新しいコンテンツが正しく表示されなくなることがあります。最善の解決策は、定期的にキャッシュとCookieをクリアすることです。この記事では、Edgeブラウザでキャッシュをクリアする方法をわかりや

  2. ブラウザのCookieと閲覧履歴を削除する方法【Chrome・Edge対応】

    インターネットを利用するうえで、Webブラウザは欠かせないアプリケーションです。Google Chrome、Microsoft Edge、Mozilla Firefox、Brave、Tor、Operaなど、有名なブラウザは数多く存在します。これらのブラウザはいずれも、Cookieやキャッシュファイルをパソコン上に保存し、閲覧履歴を記録しています。このデータはページの高速表示、サイト設定の保存、ログイン情報の記憶などに役立ち、過去に訪れたページへのアクセスも容易にしてくれる便利なものです。 しかしこの便利なデータが、プライバシーの観点からはリスクにもなり得ます。ブラウザ開発企業やソフトウェア会社