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

PythonとSelenium WebDriverで特定のドメインにCookieを設定する方法

PythonのSelenium WebDriverでは、特定のドメインに対してCookieを設定することができます。Cookieはブラウザが送受信する情報を保持するために使われるもので、キーと値(key-value)のペア形式で構成され、サーバーからブラウザへ渡されるメッセージのような役割を果たします。

Cookieを追加するにはadd_cookieメソッドを使用します。このメソッドにはキーと値がパラメータとして渡されます。すべてのCookieを取得したい場合はget_cookiesメソッドを、特定のCookieだけを取得したい場合はget_cookieメソッドを使用します。

また、Cookieを削除する際にはdelete_all_cookiesメソッドを使います。

基本構文

driver.add_cookie({"Automation": "QA"});
c= driver.get_cookies();
driver.get_cookie({"Automation");
driver.delete_all_cookies();

実装例

以下は、Firefoxブラウザを使って実際にCookieの追加・取得・削除を行うサンプルコードです。各処理の内容はコメントとして記載しています。

from selenium import webdriver
#geckodriver.exeのパスを設定
driver = webdriver.Firefox(executable_path="C:\\geckodriver.exe")
driver.maximize_window()
#URLを開く
driver.get("https://www.tutorialspoint.com/index.htm")
#Cookieを追加
c = {'name' : "Automation", 'value' : 'QA'}
driver.add_cookie(c);
#Cookieの総数をカウント
print(len(driver.get_cookies()))
#名前を指定してCookieを取得
print(driver.get_cookie("Automation"))
#Cookieを削除
driver.delete_all_cookies();
#削除後のCookieを確認
d = driver.get_cookies()
print("全削除後のCookie数")
print(len(d))
#ブラウザを閉じる
driver.quit()

実行結果

このコードを実行すると、まず追加直後のCookieの総数が出力され、続いて「Automation」という名前のCookieの内容(名前・値・ドメインなどの情報)が表示されます。その後、すべてのCookieを削除した状態でのCookie数が出力され、削除が正しく行われたことを確認できます。

PythonとSelenium WebDriverで特定のドメインにCookieを設定する方法


  1. 【Python】Selenium WebDriverでページの読み込み完了まで待機する方法

    Selenium WebDriverを使えば、ページが完全に読み込まれるまで待機することができます。Seleniumには「同期(synchronization)」という概念があり、これには暗黙的待機(implicit wait)と明示的待機(explicit wait)の2種類があります。ページの読み込み完了を待つ場合には、明示的待機の仕組みを利用するのが適切です。明示的待機(explicit wait)とは明示的待機は、特定の要素に対して設定された期待条件(expected condition)が満たされるまで待つ仕組みです。ページの読み込み完了を判定したい場合は、対象となる要素に対して p

  2. PythonのSelenium WebDriverで特定要素のスクリーンショットを撮影する方法

    Selenium WebDriverを使用すると、ページ全体ではなく、特定の要素だけを切り取った「部分的なスクリーンショット」を簡単に撮影できます。特定の要素のスクリーンショットを取得するには、まずid、name、class名などのロケーター(XPathやCSSセレクターなど)を使って、対象となるWeb要素を特定する必要があります。次に、そのWeb要素に対してscreenshot()メソッドを呼び出し、引数として拡張子付きの画像ファイル名を渡します。これにより、プロジェクトフォルダ内にその要素のスクリーンショットを含む新しい画像ファイルが作成されます。構文l=driver.find_eleme