在 AWS EC2 執行個體上執行 Selenium 時出現異常

在 AWS EC2 執行個體上執行 Selenium 時出現異常

當我在 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>

看:

相關內容