當我在 AWS EC2 執行個體(無頭伺服器)上使用 Firefox 驅動程式執行 Selenium 測試案例時,我遇到了此異常。我安裝了 Firefox 並對其進行了所有必要的更改
org.openqa.selenium.WebDriverException:org.openqa.selenium.WebDriverException:無法連接到連接埠 7055 上的二進位 FirefoxBinary(/opt/firefox/firefox-bin);進程輸出如下: ï¿ //browser/content/utilityOverlay.js::getShellService::第339行資料:否]
請問有人可以幫我解決這個例外嗎?
答案1
首先安裝 xvfb,它將允許您使用“虛擬螢幕”運行它。
sudo yum -y install xorg-x11-server-Xvfb
那麼您應該查看這篇有用的文章,它將幫助您在亞馬遜 EC2 上安裝 Firefox。這是因為您不能只在 EC2 上執行 sudo yum install firefox。所以,基本上你創建了一個文件(我用過這個要旨)在他提供的 EC2 執行個體上,然後執行它來安裝 Firefox 及其所有相依性。 http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/
當腳本運行時,它將安裝 firefox
/usr/local/bin/firefox
預設情況下我相信。
一旦安裝完成,您可能需要將其添加到您的路徑中,如上面的連結也解釋的那樣。但你也應該加入 DISPLAY 系統變量,所以做這樣的事情...
cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
DISPLAY=:99
export PATH
export DISPLAY
EOF
然後您必須為螢幕 99 啟動 xvfb,以便它能夠在其「虛擬螢幕」上運行 Firefox。就像這樣...
Xvfb :99 -screen 0 1024x768x16 &
然後希望當您重新執行 Selenium 測試時,它會在路徑上找到 Firefox 並在該 EC2 執行個體上正確的「虛擬化」畫面中執行它。
作為旁注 - 我絕不是亞馬遜 Linux 任何類型的專家,所以......祝你好運。
或者,您可以研究針對 selenium 伺服器的運作情況,您可以在 amazon EC2 ubuntu 微型執行個體上啟動該伺服器,您可以輕鬆地將其設定為具有 GUI。
答案2
無法連接到連接埠 7055 上的二進位 FirefoxBinary(/opt/firefox/firefox-bin)
您需要升級 Selenium 伺服器(至 2.53.x),以便它可以支援較新版本的 Firefox。或使用其他網路驅動程式(例如 Chrome)。
如果您使用 Maven,請使用以下行pom.xml
:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
<scope>test</scope>
</dependency>
看: