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

PythonでSelenium WebDriverをプロキシ経由で実行する方法

PythonのSelenium WebDriverでは、プロキシを設定した状態でブラウザを操作することができます。プロキシは、ローカライズ(地域対応)テストを行ううえで欠かせない要素です。たとえばECサイトのテストでは、ユーザーの所在地に応じて表示される言語や通貨が正しいかどうかを確認できます。

テスト内でプロキシを活用することで、ウェブサイトのUI(ユーザーインターフェース)がアクセス元の地域と一致しているかを検証することも可能です。Seleniumでプロキシを設定するには、以下の手順に従います。

  • Seleniumパッケージからwebdriverをインポートする
  • プロキシサーバーのアドレスを定義する
  • ChromeOptionsクラスのオブジェクトを作成する
  • プロキシ情報をChromeOptionsに渡す
  • 設定済みのオプションをChrome()オブジェクトに指定して起動する

コード例

実際のコード実装は以下の通りです。なお、Selenium 4以降ではchrome_options=ではなくoptions=を使用する点に注意してください。

from selenium import webdriver

# プロキシサーバーの定義
py = "128.21.0.0:8080"

# ChromeOptionsクラスの設定
chrome_options = webdriver.ChromeOptions()

# オプションにプロキシパラメータを追加
chrome_options.add_argument('--proxy-server=%s' % py)

# オプションをChrome()に渡して起動
driver = webdriver.Chrome(options=chrome_options)
driver.implicitly_wait(0.6)
driver.get("https://www.tutorialspoint.com/index.htm")

続いて、ページ上の要素に現在のユーザーの所在地が正しく表示されているかを確認するには、以下のようなコードを追加します。要素の取得には、新しい書式であるfind_element(By.XPATH, ...)を使用しています。

from selenium.webdriver.common.by import By

def checkL(self):
self.driver.get(self.url)
st = self.driver.find_element(By.XPATH, "//div[@id='loc']")
# アサーションで所在地を検証
self.assertEqual('India', st.text)

複数の地域を検証したい場合は、プロキシアドレスを引数として受け取るメソッドを作成しておけば、同じコードを再利用しながら効率的にテストを実行できます。

  1. PythonとSeleniumを使ったFacebook自動ログインの実装方法

    Pythonには「Selenium」というパッケージがあり、これを利用することでWebドライバーを介したブラウザ操作を自動化できます。本記事では、PythonのSeleniumパッケージを使ってFacebookに自動ログインする方法を解説します。 全体の流れ Seleniumは、Webブラウザの操作を自動化・制御するための強力なパッケージです。このプログラムを実行するには、Python環境へのSeleniumのインストールに加えて、「geckodriver」と呼ばれるドライバーソフトウェアが必要になります。以下の手順で実現できます。 ステップ1:Seleniumのインストール まず、Pyt

  2. PythonとSeleniumでWhatsAppチャットボットを作る方法

    はじめに この記事では、Pythonを使ってWhatsAppのチャットボットを作成する方法を解説します。TwitterやFacebook向けの一般的なチャットボットとは異なり、WhatsAppは運営ポリシーの関係上、プラットフォーム上で直接ボットを動かすことができません。 しかし、SeleniumというPythonの強力なパッケージを使えば、ブラウザの操作を自動化することでこれを実現できます。Seleniumを利用すれば、ブラウザ経由で「WhatsApp Web」を自由に操作できるのです。 必要なもの 準備が必要なのは、主に以下の3点です。 1. Selenium Seleniumはpip