AmazonLinuxでselenium-webdriverを動かす

More than 3 years have passed since last update.


この記事は既に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 に戻したら解消しました、お気をつけ下さい