AmazonLinuxでselenium-webdriverを動かす

  • 32
    いいね
  • 10
    コメント
この記事は最終更新日から1年以上が経過しています。

この記事は既にOut-Datedです

新しい情報は https://gist.github.com/joekiller/4144838#gistcomment-1742288 にかかれています、こちらを御覧ください

use Amazon Linux firefox-compat package instead:

Installing the EPLL yum repository:
https://lambda-linux.io/#getting-started

Installing Firefox on Amazon Linux:
https://lambda-linux.io/blog/2015/01/28/announcing-firefox-browser-support-for-amazon-linux/


以下古い情報

  • ec2上でselenium-webdriverを動かそうとした場合以下の課題があります
    1. ec2にはブラウザ(ここではfirefox)がない
    2. ec2にはX(ディスプレイ)がない

実施内容

  1. firefoxのインストール
  2. Xvfbのインストール

詳細

1. firefoxのインストール
  • こちらで紹介されている gtk-firefox スクリプトがほぼそのまま使えました
  • ただしfirefoxの配布方法が若干変わっているようで、URLの変更と解凍コマンドの変更が必要でした
    • もとのURLからはDL出来なくなってるみたいです
    • 以前は.tar.gzだったパッケージが.tar.bz2になってるようです
  • 変更箇所は以下の2カ所
    • 2014/09/04時点のfirefoxの最新は32.0でした
    • 元のスクリプトでは常に最新をインストール出来るようにしていたようですが同等のことはここではできません、適宜URLを変更してください
$ diff gtk-firefox.org gtk-firefox
42,43c42,43
<      wget -r --no-parent --reject "index.html*" -nH --cut-dirs=7 http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
<      tar xvf firefox*
---
>      wget -r --no-parent --reject "index.html*" -nH --cut-dirs=7 http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/32.0/linux-x86_64/en-US/firefox-32.0.tar.bz2
>      tar jxvf firefox*
  • gtk-firefoxスクリプトを用意したらそれをsudo付けて実行します
$ vi gtk-firefox
$ chmod 755 gtk-firefox
$ sudo ./gtk-firefox
インストール後firefoxが立ち上がらない場合(2015/01/06追記)
  • インストール後、firefoxを起動しようとすると以下の様なエラーが出ることがあるようです

$ firefox -v
XPCOMGlueLoad error for file /usr/local/firefox/libxul.so:
libXcomposite.so.1: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

  • 読み込みに失敗しているパッケージをインストールすることで解消できました

$ yum search libXcomposite
$ sudo yum install libXcomposite.x86_64

$ firefox -v
Mozilla Firefox 34.0.5

備考
  • gtk-firefoxスクリプトの実行はそれなりに時間がかかります
    • 実運用環境は別にして、インストール時はそれなりのインスタンスを用いることをお勧めします
    • こちらによると、microインスタンスでやろうとすると1時間以上かかるとか
2. Xvfbのインストール
$ sudo yum install xorg-x11-server-Xvfb.x86_64

おまけ

  • 古いselenium-webdriverを使っている場合、firefoxのバージョンによってはエラーが起きるようです
unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)
  • firefox 32.0 にしたところ、selenium-webdriver 2.38.0 のテストが失敗しました
  • そしてfirefoxを 31.0 に戻したら解消しました、お気をつけ下さい