エンジニ屋.com(エンジニヤドットコム)

分かりやすくを意識して情報発信!

Selenium入門:PythonでWebの自動操作を始めよう!


Seleniumは、ブラウザの操作を自動化するための強力なツールキットです。

テスト自動化、ウェブスクレイピング、または単純な反復タスクの自動化に利用できるため、開発者にとって非常に便利なツールとなっています。

この記事では、Python(パイソン)を使用してSelenium(セレニウム)をどのように始めるか、基本的な概念と操作を初心者向けに解説します。

Pythonは初心者にも扱いやすく、Seleniumとの連携も優れているため、Web自動化の世界に最適な言語です。


Seleniumとは?

Seleniumは、ウェブブラウザの操作を自動化するために広く使われているオープンソースのツールセットです。

主にウェブアプリケーションの自動テストを目的として開発されましたが、その用途はそれにとどまらず、任意のウェブベースのタスクの自動化に適用することができます。


Seleniumのコンポーネント

Seleniumプロジェクトはいくつかの異なるコンポーネントから構成されています:

コンポーネントとはSeleniumプロジェクトのさまざまな部分を指し、それぞれが独自の役割を持っています。

具体的には、以下のようなコンポーネントがあります。

  • Selenium IDE: ブラウザの拡張機能であり、レコード&プレイバック機能を提供し、テストケースを開発するための迅速な手段をユーザーに提供します。

  • Selenium WebDriver: プログラムからブラウザを制御するためのAPIを提供します。WebDriverは、ブラウザ固有のドライバと連携して、ブラウザのインスタンスを制御し、DOM要素の検索、ユーザーの入力のシミュレーション、JavaScriptの実行などの複雑な操作を実行します。

  • Selenium Grid: 複数のマシンとブラウザでテストを並列実行することができるサーバーです。これにより、テストスイートの実行時間を大幅に短縮することができます。


Seleniumの特徴

  • クロスブラウザ対応: Selenium WebDriverは、Chrome、Firefox、Internet Explorer、Safariなどの主要なウェブブラウザで動作します。

  • マルチプログラミング言語対応:Seleniumのテストスクリプトは、Python、Java、C#、Ruby、JavaScriptなど複数のプログラミング言語で記述することができます。

  • コミュニティのサポート:Seleniumはオープンソースプロジェクトであり、活発なコミュニティによる広範なサポートを受けています。


Selenium WebDriverの活用

Selenium WebDriverは、Webアプリケーションのテストを自動化するための中核的なコンポーネントです。

WebDriverを使用することで、開発者は以下のような操作を自動化できます:

●ページ間のナビゲーション
●フォームの入力と送信
●ページ上の要素の検索と操作
●クッキーの設定と取得
●キャプチャとスクリーンショットの取得
●複雑なページ上のイベントのシミュレーション

これらの操作は、実際のユーザーがブラウザを操作するのと同じ方法で行われます。

これにより、開発者はユーザーの視点からウェブアプリケーションの機能とパフォーマンスを評価できます。

それでは、基本操作を解説していきます!


環境セットアップ

Web自動化を始める前に、いくつかの準備が必要です。

  1. Pythonのインストール: Pythonがまだインストールされていない場合は、[Pythonの公式サイト](https://www.python.org/)からインストールしてください。

  2. Seleniumパッケージのインストール: コマンドプロンプトまたはターミナルで以下のコマンドを実行します。

  3. pip install selenium

  4. ブラウザドライバのダウンロード: 使用しているブラウザのWebDriverをダウンロードし、実行可能なパスに配置します。
    例えば、Chromeを使用している場合は、[ChromeDriver](https://chromedriver.chromium.org/downloads)が必要です。

ChromeDriverをダウンロードする際の注意点
  1. 使用しているChromeのバージョンに合わせる:インストールされているGoogle Chromeブラウザのバージョンと互換性のあるChromeDriverのバージョンを選ぶ必要があります。

  2. 最新の安定版(Stable)を選ぶ 通常、最新の安定版が推奨されますが、特定の機能をテストする必要がある場合は、ベータ版を使用することもあります。


Pathの設定

windows環境での解説となりますが、Macの方は適宜読み替えて頂きたく思います。

ダウンロードした.zipファイルを解凍し、chromedriver.exeファイルを取り出します。

chromedriver.exeを適切な場所に配置します。

よく使われる場所は、C:\WebDriver\binなど、特定のフォルダを作成することですが、どの場所でも構いません。

chromedriver.exeを配置したフォルダのパスをシステムの環境変数PATHに追加します。

これにより、コード内でchromedriverのパスを指定する必要がなくなります。

環境変数PATHに追加するには、以下の手順を実行します。

スタートメニュー → システムの設定 → システムのプロパティ → 詳細システム設定 → 環境変数を開きます。

Tips

キーボードで「Windowsキー+ R」を押して、「sysdm.cpl」と入力するとシステムのプロパティに飛べます。

システム環境変数の中からPathを選択し、編集をクリックします。

新規をクリックし、chromedriver.exeのあるフォルダのパスを追加します。

OKをクリックして閉じ、変更を保存します。

例えば、Cドライブに以下のように設置した場合、

Cドライブにフォルダを設置

以下のようにパスを設定します。

PATHを設定

パスが設定できているかどうかはターミナルで以下のように実行して、バージョンが表示されたらOKです。

ターミナルで確認

Pythonコード内で、以下のようにwebdriver.Chrome()を呼び出すことで、Chromeブラウザを開始できます。

from selenium import webdriver

# 環境変数PATHに追加されている場合は、パスを指定する必要はありません
driver = webdriver.Chrome()

# ここにウェブ自動化のコードを記述

# ブラウザを閉じる
driver.quit()


最初のSeleniumスクリプト

以下は、Pythonで書かれた簡単なSeleniumスクリプトの例です。

このスクリプトは、Googleのホームページを開き、検索ボックスに"Python"を入力して検索を実行します。

実行された結果ページのタイトルとURLをテキストファイルに書き込んで、出力します。

ファイル名は、拡張子が.pyであれば何でもよいですが、ここでは「google_search.py」とします。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

# WebDriverのパスを指定してブラウザを開始
driver = webdriver.Chrome()

# Googleのページを開く
driver.get('http://www.google.com')

# 検索テキストボックスを見つけて"Python"を入力
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('Python')

# Enterキーを送信して検索を実行
search_box.send_keys(Keys.RETURN)

# 結果ページが表示されるのを待つ
driver.implicitly_wait(10)

# 結果ページのタイトルとURLを取得
title = driver.title
url = driver.current_url

# ブラウザを閉じる
driver.quit()

# 結果をファイルに書き出す
with open('search_results.txt', 'w') as file:
    file.write(f'Title: {title}\n')
    file.write(f'URL: {url}\n')


スクリプトの実行

ファイルを設置しているディレクトリで、以下コマンドを実行すると処理が開始されます。

python google_search.py

同階層にファイルが出力されていれば、無事に完了です!!

このスクリプトはSelenium入門者にとって最初のステップとなりますが、これを基にしてさまざまな自動化タスクに挑戦することが可能です。


まとめ

SeleniumとPythonを使用すると、Web自動化の可能性は無限大に広がります。

このガイドがあなたの旅の第一歩となり、効率的なWeb操作を実現する助けになれば幸いです。

最新の記事を公開する際には、X(旧Twitter)でもお知らせしています。
ご興味のある方は、ぜひフォローをお願いいたします!