Selenium: Webブラウザ操作ツール

Selenium とは

Selenium (セレニウム) は、Webブラウザを外部から操作するツールです。 ユーザによる入力を模倣することができるので、Webサイト(Webアプリケーション)のテストに使われます。

Webサイトにアクセスする際に実際のWebブラウザを使うことから、 動的に更新されるWebページをスクレイピングするといった用途にも使うことができます。

Selenium の導入 (Java)

Selenium Client & WebDriver Language Bindings

Maven の利用

プロジェクト管理ツールである Maven が利用可能な状態であれば、 設定ファイルである pom.xml に以下を追記します。 これにより、依存関係のある全てのライブラリがプロジェクトに登録されます。

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

パッケージのダウンロード

Maven が利用できない場合、 公式サイトの「Selenium Client & WebDriver Language Bindings」から Java 用のものをダウンロードすることができます。

アーカイブファイル (zip) に含まれる jar ファイルすべてを プロジェクトに登録する必要があります。

ブラウザ用ドライバ

Selenium で操作するブラウザ用の WebDriver が必要です。 Google Chrome 用の WebDriver である ChromeDriver の所在は以下のページでわかります。

PCにインストールされている Google Chrome は、通常、安定版(Stable) です。 あらかじめ最新版に更新しておいてください。 Chorme の version は Chrome の 「ヘルプ」→「Google Chrome について」で確認できます。

Stable の表で、chrome ではなく chromedriver の適切な Platform の行を確認します。 Windows であれば win64、Mac であれば mac-arm64 または mac-x64 です。 zip ファイルの URL が記述されていますので、そこからダウンロードします。 zip ファイルを展開すると chromedriver.exe (Mac の場合は chromedriver )が現れますので、 これをプロジェクトフォルダ内のどこかに置きます(以下では bin というフォルダ内に置いたとします)。

Mac の場合、初回起動時は chromedriver が実行できません。 初回起動後、システム環境設定 → セキュリティとプライバシー → 一般 → ダウンロードしたアプリケーションの実行許可 → このまま許可、 として再度実行します。

Selenium の利用

公式サイトに API の Javadoc があります。

サンプル

Google Chrome で Google 検索をすると、コンテンツが動的に読み込まれます。

「遊園地」「テーマパーク」「レストラン」「ラーメン屋」などのスポットを表す語で検索したときに、 近隣のスポット一覧が表示されます。これを取得してみます。

抜き出す要素を特定するには、Google Chrome のデベロッパー ツール (メニュー -> その他のツール、もしくは Ctrl + Shift + i) の Elements タブを利用するとよいでしょう。 要素を右クリックし、Copy -> Copy XPath または Copy full XPath とすることでクリップボードにその要素の XPath がコピーされます。

GoogleLocalSearcher.java

Spot.java

参考ページ