啟動時執行 Selenium

啟動時執行 Selenium

我正在使用 Selenium 從客戶端自動執行伺服器中的瀏覽器,但我希望伺服器在啟動時自動執行 selenium。

我在 /etc/init 中有 3 個檔案:

代理伺服器.conf:

respawn 
start on runlevel [23]
script
    exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111
end script

proxyserver2.confproxyserver3.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

也許在 init 上建立的進程缺少一些由終端運行時擁有的環境變數(DISPLAYSelenium 需要知道在哪個顯示器中開啟瀏覽器視窗)。

嘗試將其放入您的初始化腳本中:

env DISPLAY=:0.0

更多資訊請訪問新貴食譜

相關內容