Skip to content

Selenium入門

はじめに

Seleniumは、Webブラウザを自動制御するためのツールです。ウェブサイトの自動テストや、Webアプリケーションの操作自動化などに広く使われています。Seleniumを使えば、単純な操作から複雑な操作まで、プログラムで制御することができます。

この記事では、Seleniumの基本的な使い方を、初心者向けに解説します。Seleniumのインストール方法や、簡単な自動操作の実装例などを紹介します。Seleniumを使ったWebアプリケーションの自動化に興味がある方は、ぜひ参考にしてください。

Seleniumのインストール

Seleniumを使うには、まず開発環境にSeleנiumをインストールする必要があります。ここでは、Pythonを使った例を紹介します。

Pythonにはデファクトスタンダードのパッケージマネージャpipが付属しているので、これを使ってSeleniumをインストールできます。

pip install selenium

このコマンドを実行すると、Seleniumがインストールされます。

次に、ブラウザドライバーもインストールする必要があります。ブラウザドライバーとは、Seleniumがブラウザを自動操作するためのプログラムです。ブラウザの種類に合わせて、適切なドライバーをダウンロードし、パスを通す必要があります。

たとえば、Chromeを使う場合はChromeDriverを、Firefoxを使う場合はGeckoDriverをダウンロードします。ダウンロードしたドライバーのパスを通すことで、Seleniumからブラウザを制御できるようになります。

Seleniumの基本的な使い方

Seleniumを使ったWebサイトの自動操作は、大きく分けて以下の3つのステップで行います。

  1. ブラウザのインスタンスを作成する
  2. ブラウザの操作を記述する
  3. ブラウザを終了する

まずは、Chromeブラウザのインスタンスを作成してみましょう。

from selenium import webdriver
# Chromeドライバーの設定
driver = webdriver.Chrome()
# Webサイトを開く
driver.get("https://www.example.com")
# ブラウザを終了する
driver.quit()

この例では、Chromeドライバーを使ってChromeブラウザのインスタンスを作成し、https://www.example.comにアクセスしています。最後に、ブラウザを終了しています。

次に、要素の検索と操作について見ていきましょう。Seleniumでは、さまざまな方法で要素を検索することができます。代表的なものには以下のようなものがあります。

  • find_element_by_id(id): idで要素を検索
  • find_element_by_name(name): nameで要素を検索
  • find_element_by_xpath(xpath): XPathで要素を検索
  • find_element_by_css_selector(css): CSSセレクターで要素を検索

見つかった要素に対して、クリックや入力などの操作を行うことができます。

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# 検索ボックスに"selenium"と入力する
search_box = driver.find_element_by_name("q")
search_box.send_keys("selenium")
# 検索ボタンをクリックする
search_button = driver.find_element_by_name("btnK")
search_button.click()
driver.quit()

この例では、Googleの検索ページを開き、検索ボックスに”selenium”と入力し、検索ボタンをクリックしています。

Seleniumには、要素の待機処理や、JavaScript の実行、ファイルのアップロードなど、さまざまな機能が用意されています。状況に応じて、適切な機能を使い分けることが重要です。

応用例: Webサイトの自動テスト

Seleniumの代表的な使い道は、Webサイトの自動テストです。実際のユーザー操作をプログラムで再現し、Webサイトの動作を検証することができます。

以下は、Googleのトップページにアクセスし、検索ボックスに文字列を入力して検索を行う、簡単な自動テストの例です。

from selenium import webdriver
import unittest
class GoogleSearchTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("https://www.google.com")
def test_search(self):
search_box = self.driver.find_element_by_name("q")
search_box.send_keys("Selenium")
search_button = self.driver.find_element_by_name("btnK")
search_button.click()
self.assertIn("Selenium", self.driver.title)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()

この例では、unittestモジュールを使ってテストケースを定義しています。setUp()メソッドでChromeブラウザのインスタンスを作成し、https://www.google.comにアクセスしています。

test_search()メソッドでは、検索ボックスに”Selenium”と入力し、検索ボタンをクリックしています。その後、検索結果のページのタイトルに”Selenium”が含まれることを確認しています。

最後に、tearDown()メソッドでブラウザを終了しています。

このように、Seleniumを使えば、Webサイトの自動テストを簡単に実装できます。複雑な操作も、プログラムで再現することができるため、開発の効率化に役立ちます。

まとめ

この記事では、Seleniumの基本的な使い方を説明しました。Seleniumを使えば、Webブラウザの自動制御が可能になり、Webアプリケーションの自動化やテストに活用できます。

Seleniumの機能は多岐にわたるため、状況に応じて適切な使い分けが重要です。また、ブラウザドライバーの設定など、事前の準備も欠かせません。

Webアプリケーションの自動化に興味がある方は、ぜひ Seleniumを活用してみてください。