Seleniumとブラウザドライバーのインストールと使い方

この記事では、npm (Node.js) の selenium-standalone による Selenium 本体と各種ブラウザドライバーのインストール方法、その使い方を説明します。

selenium-standalone でできること

Selenium Standalone Server のインストール

SeleniumHQ 公式のページ でも案内されている Selenium の本体をダウンロードしてくれます。

Browser Drivers のインストール

下記のような各種ブラウザのドライバをダウンロードしてくれます。 対象のブラウザやそのバージョンは設定ファイルで指定することもできます。

Selenium Standalone Server のスタート

ブラウザの自動操作環境を提供するサーバを開始します。 これが起動している状態でないと、スクリプトでブラウザを操作することができません。

selenium-standalone のグローバルインストール

まずは手軽に試すことのできるグローバルインストールの方法を説明します。 任意のディレクトリで以下のコマンドを実行してください。 オプション -g を指定してグローバルインストールすることで、 どのディレクトリからでも Selenium のサーバを起動できるようにしています。

$ npm install -g selenium-standalone@latest

$ selenium-standalone install
コマンド実行結果の例(失敗)
not fount: java
Usage: selenium-standalone action [options]

上記の表示が出てしまった場合、Selenium の動作に必要である Java がインストールされていないか、PATH が通っていません。 Java実行環境のダウンロードページからダウンロードするなりしましょう。 Selenium を扱うような方の環境には入っていると思いますが……。

コマンド実行結果の例(成功)
---
selenium install:
from: https://selenium-release.storage.googleapis.com/3.4/selenium-server-standalone-3.4.0.jar
to: C:\Users\syon\AppData\Roaming\npm\node_modules\selenium-standalone\.selenium\selenium-server\3.4.0-server.jar
---
chrome install:
from: https://chromedriver.storage.googleapis.com/2.29/chromedriver_win32.zip
to: C:\Users\syon\AppData\Roaming\npm\node_modules\selenium-standalone\.selenium\chromedriver\2.29-x64-chromedriver
---
ie install:
from: https://selenium-release.storage.googleapis.com/3.4/IEDriverServer_x64_3.4.0.zip
to: C:\Users\syon\AppData\Roaming\npm\node_modules\selenium-standalone\.selenium\iedriver\3.4.0-x64-IEDriverServer.exe
---
firefox install:
from: https://github.com/mozilla/geckodriver/releases/download/v0.16.0/geckodriver-v0.16.0-win64.zip
to: C:\Users\syon\AppData\Roaming\npm\node_modules\selenium-standalone\.selenium\geckodriver\0.16.0-x64-geckodriver

デフォルトでは Chrome・IE・Firefox のドライバがインストールされます。 (Mac の場合は IE がインストールされませんでした)

ダウンロードしたファイルの配置場所(グローバルインストール時)

Windows

%APPDATA%\Roaming\npm\node_modules\selenium-standalone\.selenium\

Mac

/usr/local/lib/node_modules/selenium-standalone/.selenium/

Seleniumサーバの開始(グローバルインストール時)

$ selenium-standalone start

selenium-standalone のローカルインストール

プロジェクトごとに管理したい場合は、以下のようにします。

$ npm install --save selenium-standalone

プロジェクトで Selenium を扱うのであれば、おそらくブラウザドライバーの種類やバージョンの定義が必要になるかと思います。 設定ファイル config.js を用意しましょう。

config.js
module.exports = {
  drivers: {
    chrome: {
      version: '2.29',
      arch: process.arch,
      baseURL: 'https://chromedriver.storage.googleapis.com'
    },
    ie: {
      version: '3.3.0',
      arch: 'ia32',
      baseURL: 'https://selenium-release.storage.googleapis.com'
    },
  },
  // proxy: 'http://proxyserver:8080',
}
version

ブラウザドライバーのバージョン(≠ブラウザのバージョン)

arch

ブラウザドライバーのbit数 'x64' または 'ia32'
process.archは実行マシンの環境から自動取得)

baseURL

ブラウザドライバーのダウンロードサイトURL

proxy

インターネットからのダウンロードにプロキシ接続が必要な場合に設定することができます。 未定義の場合は環境変数 http_proxy / https_proxy も参照されるようです。

npm を介した Selenium コマンドの実行

用意した設定ファイルは、オプション --config=config.js で指定することができます。

package.json(抜粋)
  "scripts": {
    "selenium-install": "selenium-standalone install --config=config.js",
    "selenium-start": "selenium-standalone start --config=config.js"
  },
  "dependencies": {
    "selenium-standalone": "^6.4.1"
  }
ブラウザドライバーのローカルインストール
$ npm run selenium-install

ダウンロードしたファイルの配置場所(ローカルインストール時)

Windows

node_modules\selenium-standalone\.selenium\

Mac

node_modules/selenium-standalone/.selenium/

Seleniumサーバの開始(ローカルインストール時)

$ npm run selenium-start

Seleniumサーバ 開始オプション

DesiredCapabilities

SeleniumHQ/selenium Wiki
デバイス・OS・ブラウザ・バージョンを指定して生成する便利ツール

Platform Configurator - The Sauce Labs Cookbook

Table 1. browser selection
Key Type Description

browserName

string

以下のうちいずれか1つ。
android, chrome, firefox, htmlunit, internet explorer, iPhone, iPad, opera, safari

version

string

ブラウザのバージョン。不明の場合は空白を指定。

platform

string

以下のうちいずれか1つ。
WINDOWS, XP, VISTA, MAC, LINUX, UNIX, ANDROID