
Я использую Selenium для автоматизации браузера на сервере с клиента, но мне нужно, чтобы сервер автоматически запускал Selenium при запуске.
У меня есть 3 файла в /etc/init:
proxyserver.conf:
respawn
start on runlevel [23]
script
exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111
end script
proxyserver2.confиproxyserver3.confэто одно и то же и меняет только содержимое «script»:
exec java -Dwebdriver.chrome.driver=/home/marco/selenium-client/chromedriver -jar selenium-server-standalone-2.20.0.jar -role node -port 2222 -hub http://192.168.1.12:1111 -browserName=chrome,maxInstances=5
Если я выполняю эти команды при запуске с помощью этого метода, то при запуске Selenium на клиенте он выдает мне эту ошибку:
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Но если я выполняю в терминале те же команды, что и в /etc/init, все работает отлично... почему?!
И последнее, если я выполню:
ps aux | grep selenium
когда сервер запускает скрипты, он мне выдает:
root 746 0.0 12.1 677080 124468 ? Ssl Apr23 8:10 java -Dwebdriver...
root 749 0.0 12.7 685552 130280 ? Ssl Apr23 8.09 java -Dwebdriver...
root 755 0.0 1.9 680168 20240 ? Ssl Apr23 8.08 java -jar selenium...
когда я запускаю в терминале, он мне выдает:
1000 9764 6.6 3.0 679236 30992 pts/0 Sl+ 10.33 0:01 java -jar...
1000 9783 14.0 3.0 677112 31752 pts/1 Sl+ 10.33 0:01 java -Dwebdriver...
1000 9792 12.6 3.0 675472 30944 pts/2 Sl+ 10.34 0:01 java -Dwebdriver...
Почему это не может работать?
Спасибо!!
решение1
Возможно, в процессе, созданном при init, отсутствуют некоторые переменные среды, которые есть при запуске из терминала ( DISPLAY
это переменная, которая потребуется Selenium, чтобы знать, на каком дисплее открыть окно браузера).
Попробуйте вставить это в свой скрипт инициализации:
env DISPLAY=:0.0
Дополнительная информация накулинарная книга upstart.