Edited at

Selenium 環境構築 ボク的チートシート


1. 鳥瞰

テストコード

↓↑

Webドライバ

↓↑

Seleniumサーバー

↓↑

ブラウザドライバ

↓↑

ブラウザ

↓↑

テスト対象サイト


2. 前提


  • Ubuntu 18.04 を使用する。

  • PHPでテストコードを記述する。

  • WebドライバはいくつかあるがFacebookのを使う。

  • ブラウザがFirefoxの場合、ブラウザドライバにはgeckodriverを使用する。

  • ブラウザがChromeの場合、ブラウザドライバにはChromeDriverを使用する。


3. 依存

sudo apt install curl

sudo apt install php-curl
sudo apt install php-zip
sudo apt install openjdk-8-jre-headless

上記に限らず足りないパッケージがあればインストールする。


4. インストール

Selenium Standalone Serverをダウンロードする。

https://www.seleniumhq.org/download/

sudo mkdir /opt/selenium

(適宜パーミッションを設定する。)
sudo mv ~/Downloads/selenium-server-standalone-3.141.59.jar /opt/selenium/
cd /opt/selenium/

Webドライバをcomposerを使ってインストールする。

curl -sS https://getcomposer.org/installer | php

php composer.phar require facebook/webdriver

geckodriverをダウンロードする。

https://github.com/mozilla/geckodriver/releases

sudo tar xvf ~/Downloads/geckodriver-v0.24.0-linux64.tar.gz /usr/local/bin/

chromeの場合もだいたい同じ。chromeのバージョンに対応したドライバをダウンロードしてパスが通っているディレクトリ(/usr/local/bin/など)に放り込む。

https://sites.google.com/a/chromium.org/chromedriver/downloads


5. Seleniumサーバーの起動

# Firefoxの場合

java -jar /opt/selenium/selenium-server-standalone-3.141.59.jar -enablePassThrough false

# Chromeの場合
java -jar /opt/selenium/selenium-server-standalone-3.141.59.jar

ただし、-enablePassThrough falseがエラーを引き起こすことがあるっぽい。

でも-enablePassThrough falseを指定しないとテストがコケることがあるっぽい。

環境によってはchromeを使うしかないっぽい。


6. テスト実行

phpか何かでテストコードを書いて実行する。

php /opt/selenium/path/to/test.php

テストの書き方は別途整理する。