SeleniumによるWebアプリケーションの自動テスト

Seleniumは、Webアプリケーションのテストを行うためのツールです。このツールを使用してブラウザを操作し、APIを通じてWebアプリケーションのユーザーインターフェースをテストできます。

まず、SeleniumライブラリとChromedriverをインストールする必要があります。以下のようにpipコマンドを使用してSeleniumをインストールします:

pip install selenium

また、Chromeブラウザのバージョンに対応したChromedriverも必要です。Chromeブラウザは自動更新されるため、これを無効にする必要があります。

Chrome更新の無効化

  1. サービスの管理
  • キーボードの「Windows + R」キーを押して「msconfig」を実行。
  • 「サービス」タブで不要なサービスを停止。
  1. タスクスケジューラーの管理
  • 「マイコンピュータ」を右クリックし、「管理」を選択。
  • 「タスクスケジューラー」で自動更新に関連するタスクを無効化。
  1. 必要なファイルのダウンロード

環境設定

  1. Chromedriverの配置 ダウンロードしたChromedriverをChromeのインストールディレクトリにコピーします。

  2. 環境変数の設定 PATH環境変数にChromedriverのパスを追加します。

  3. 動作確認 コマンドプロンプトで「chromedriver」と入力して起動を確認します。

基本的なテストコード

以下のPythonコードは、指定されたURLを開いてウィンドウサイズを最大化します。

from selenium import webdriver

# URLの定義
target_url = "https://www.google.com"

# WebDriverの初期化
browser = webdriver.Chrome()

# ウィンドウサイズの最大化
browser.maximize_window()

# 指定されたURLへのアクセス
browser.get(target_url)

要素の正確な位置決め

Seleniumでは、要素の位置を特定するためにさまざまな方法があります。

  1. ID ID属性に基づいて要素を取得します。通常、IDは重複しません。

  2. NAME NAME属性を使用して要素を取得します。重複する可能性があります。

  3. TAG NAME タグ名を使用して要素を取得します。通常、他の要素と重複します。

  4. CLASS NAME CLASS属性を使用して要素を取得します。値が長い場合、コードの可読性が低下します。

  5. LINK TEXT テキストに基づいてリンクを特定します。<a>タグ専用です。

  6. PARTIAL LINK TEXT 部分的なテキストに基づいてリンクを特定します。<a>タグ専用です。

  7. CSS SELECTOR CSSセレクターを使用して要素を特定します。class属性などを利用することが多いです。

  8. XPATH XPATHを使用して要素を特定します。これはDOMの階層構造に基づきます。

例として、要素の検索方法を以下に示します:

element = browser.find_element("css selector", ".example-class")

特殊操作:ウィンドウハンドルの切り替え

ブラウザには複数のタブ(ウィンドウ)があり、それぞれ固有のハンドルを持っています。デフォルトでは最初のタブに焦点が当たっています。新しいタブでの操作が必要な場合は、ハンドルを切り替える必要があります。

# 全てのウィンドウハンドルを取得
tabs = browser.window_handles

# 最初のタブを閉じる
browser.close()

# 2番目のタブに切り替え
browser.switch_to.window(tabs[1])
print(browser.title)

# 再び最初のタブに戻る
browser.switch_to.window(tabs[0])
print(browser.title)

これにより、異なるタブ間でのシームレスな操作が可能になります。

タグ: Selenium WebDriver Python

7月28日 20:19 投稿