Я использую 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, которые являются одним и тем же и изменяют только содержимое "скрипта":

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 ответ1

0

Возможно, в процессе, созданном в init, отсутствуют некоторые переменные окружения, которые есть у вас при запуске терминалом (DISPLAY - это та, которую Selenium потребует знать, на каком дисплее откройте окно браузера).

Попробуйте добавить это в ваш скрипт инициализации:

env DISPLAY=:0.0

Больше информации в готовой кулинарной книге.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .