Что такое Selenuim – можно прочитать на wiki. Здесь опишу только установку
Тестовый стенд: Solaris 11.1 x86, selenium-server-standalone-2.30.0, Debian linux 7.2
Скачиваем selenium-server-standalone с официального сайта http://selenium.googlecode.com/files/selenium-server-standalone-2.30.0.jar в папку /opt/selenium.
Solaris
Примечание.
Под Solaris работает всё, кроме opera и chrome, так как они используют драйвера, жёстко заточенные под linux.
Ставим java:
#pkg install pkg:/runtime/java/jre@1.7.0.7-0.175.0.11.0.4.0
Ставим firefox
#pkg info pkg:/web/browser/firefox@10.0.4-0.175.0.9.0.4.0
Что бы “обмануть” сервер и сэмулировать X-консоль ставим пакет xvfb:
#pkg install pkg:/x11/server/xvfb@1.10.3-0.175.0.6.0.3.1223
В противном случае будет ругаться
Error: no display specified
Запускаем xvfb и эмулируем дисплей на консоли 99:
#Xvfb :99 &
Примечание.
В новых версиях xvfb добавлена опция
-displayfd: option of Xvfb by which it chooses it’s own display name by scanning for an available one
Поэтому, можно использовать её вместо жёсткого указания дисплея.
Теперь переходим к написанию стартового скрипта. Выглядит он так:
#!/usr/bin/bash
cd /opt/selenium
export DISPLAY=:99
java -jar ./selenium-server-standalone-2.30.0.jar -Dwebdriver.firefox.bin=/usr/bin/firefox >>/opt/selenium/selenium.log 2>&1 &
Специально сделали вывод лога в отдельный файл /opt/selenium/selenium.log
Как видно, мы выставили переменную webdriver.firefox.bin и указали полные пути к бинарникам а так же указали параметры для дисплея. Переменные к ява можно задавать -Dvariable. Так же можно задавать и переменные к самому selenium-server. Узнать их можно так
#java -jar ./selenium-server-standalone-2.30.0.jar -h
Теперь просто запускаем:
#/opt/scripts/selenium.sh
В логе увидим такое:
INFO: Launching a standalone server
Setting system property webdriver.firefox.bin to /usr/bin/firefox
14:54:12.398 INFO - Java: Oracle Corporation 23.3-b01
14:54:12.402 INFO - OS: SunOS 5.11 x86
14:54:12.419 INFO - v2.30.0, with Core v2.30.0. Built from revision dc1ef9c
14:54:12.570 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
14:54:12.572 INFO - Version Jetty/5.1.x
14:54:12.573 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
14:54:12.574 INFO - Started HttpContext[/selenium-server,/selenium-server]
14:54:12.574 INFO - Started HttpContext[/,/]
14:54:12.714 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@b6a52e
14:54:12.715 INFO - Started HttpContext[/wd,/wd]
14:54:12.718 INFO - Started SocketListener on 0.0.0.0:4444
14:54:12.718 INFO - Started org.openqa.jetty.jetty.Server@166c37e
Теперь если зайти по ссылке http://IP:4444/wd/hub мы увидим вебку для создания сессий.
Linux
Ниже опишу лишь отличия от установки Solaris.
Устанавливаем браузеры opera, firefox, chromium.
– для chrome
Скачиваем правильный chromedriver отсюда нужную версию и помещаем его в /usr/bin (что бы не ругалось на отсутствие драйвера).
Если при создании сессии получаете ошибку
chromedriver: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by chromedriver)
chromedriver: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by chromedriver)
то нужно обновить glibc до нужной версии. На Debian это делается путём обновления до testing: добавляем такую строку в /etc/apt/sources.list
deb http://ftp.debian.org/debian testing main
собственно обновляем:
$ sudo apt-get update
$ sudo apt-get -t testing install libc6-dev
– для opera
Скачиваем jar-файл operadriver отсюда и ложит в любое удобное место.
Стартовый скрипты:
– cat /usr/local/scripts/xvfb.sh
#!/bin/bash
/usr/bin/Xvfb -extension RANDR :99 -screen 0 1366x768x24 -ac &
– cat /usr/local/scripts/selenium.sh
#!/bin/bash
cd /opt/selenium
export DISPLAY=:99
export PATH=$PATH:/opt/selenium/drivers
ps -efc | grep /usr/bin/Xvfb | grep -v grep | awk '{print $2}'
if [ $? != 0 ]
then
/usr/local/scripts/xvfb.sh
fi
java -jar ./selenium.jar -Dwebdriver.chrome.driver=/usr/bin/chromedriver -Dwebdriver.firefox.bin=/usr/bin/firefox -Dwebdriver.opera.bin=/opt/selenium/drivers/operadriver-v1.1/operadriver-v1.1.jar -Dopera.binary=/usr/bin/opera >>/opt/selenium/selenium.log 2>&1 &