2010-09-08 37 views
3

我在Ubuntu系統中使用Selenium RC。 我想自動化測試,我需要在機器啓動時啓動Selenium-server.jar。Selenium Server啓動時

我在創建seleniumServer.conf/ECT/INIT /有:

start on startup 
start on runlevel 3 

respawn 

exec xvfb-run java -jar /home/condde/selenium-server-1.0.3/selenium-server.jar -port 4444 

當我重新啓動機器,它工作正常,正在運行的進程。 但是,當我執行測試,結果是:

PHPUnit_Framework_Exception: Could not connect to the Selenium RC server. 

任何想法? 謝謝!

回答

0

使用-debug用調試日誌啓動Selenium以查看是否有錯誤。

java -jar selenium-server.jar -debug > /var/log/selenium-server.log 2>&1 
0

我會啓動硒服務器進程與-log參數從過程獲取信息第一和所有的,看看它是否真正得到任何形式的連接,錯誤等。

一些想法故障排除:

  • 做,如果你輸入http://localhost:4444 應該由碼頭引擎渲染一個403錯誤,你得到任何迴應。

  • 如果這不起作用,我要和你實際的IP嘗試:4444,這可能表明本地主機變量,代理服務器設置等問題..

  • 能否防火牆設置是阻止4444端口?也許Selenium Server進程不允許啓動瀏覽器。

3

我有同樣的問題,我的進程有時不能連接硒服務器。在深入調試日誌和硒源代碼後,我發現這是因爲當硒嘗試生成隨機數時,如果/ dev/random掛起Java的SecureRandom掛起。所以我替換/ dev /隨機配備的/ dev/urandom的,那麼硒服務器工作正常:

sudo mv /dev/random /dev/random.real 
sudo ln -s /dev/urandom /dev/random 

也可以修改$JAVA_HOME/jre/lib/security/java.security文件,更改屬性:

securerandom.source=file:/dev/random 

到:

securerandom.source=file:/dev/urandom 

也許它有效,但不適合我。

+1

優秀的答案,儘管第二種方法遠遠優於其他方法,因爲它不會中斷應用程序何時以及何時不使用'/ dev/random'。 – phihag 2011-12-20 01:42:55

1

我在使用npm的ubuntu 14上做了這個。

首先,通過npm安裝硒單機版。

sudo npm install selenium-standalone -g 
sudo selenium-standalone install 

然後在/etc/init.d中創建一個符號鏈接,並將其配置爲運行。

sudo ln -s /usr/local/bin/selenium-standalone /etc/init.d/ 
sudo update-rc.d selenium-standalone defaults 
+0

你不必使用一個動作來執行硒獨立? – Isengo 2017-09-15 08:43:26

1

另一個非常簡單和很好的解決方案是通過碼頭安裝硒。我已經使用了鍍鉻形象,因爲它很容易:

sudo docker run -d -p 4444:4444 selenium/standalone-chrome 

-d選項使是將每次啓動計算機時,重新啓動一個守護進程。 -p選項將docker實例的webdriver端口(4444)轉發給主機。

好吧,它不是幻影,但我更喜歡鉻。還有一個Firefox的圖像!結賬https://github.com/SeleniumHQ/docker-selenium瞭解更多信息。

相關問題