2011-10-05 122 views
11

我得到這個錯誤啓動插座:硒的webdriver - FirefoxDriver錯誤:無法內45000

tests.IntegrationTests.Selenium.RegisterAndLogin (TestFixtureSetUp): 
SetUp : OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000 

當我執行我的代碼如下:

using System; 
using System.Text; 
using NUnit.Framework; 
using OpenQA.Selenium.Firefox; 
using OpenQA.Selenium; 

namespace ekmProspector.tests.IntegrationTests.Selenium 
{ 
    [TestFixture] 
    public class RegisterAndLogin 
    { 
     private IWebDriver driver; 

     [TestFixtureSetUp] 
     public void Init() 
     {    

      driver = new FirefoxDriver(); 
     } 
} 

無法真的很簡單,但錯誤是致命的。有任何想法嗎?

回答

7

我最終得到了這個工作,我刪除了安裝WebDriver時由NuGet添加的所有包子文件夾,並決定手動添加這些文件夾。創建一個'lib'文件夾,然後將硒二進制文件解壓縮到該文件夾​​中。然後添加對所有二進制文件的引用。似乎現在好了。

+0

這也適用於我。必須有點常見。 –

+0

我的測試工作在我的盒子上,但沒有在另一個盒子上工作,另一個盒子有一個新版本的Firefox,並失敗,出現上述錯誤消息。我升級了Selenium網絡驅動程序(沒有從NuGet中獲得),現在另一個工作正常。 –

1

我通過完全刪除Firefox和所有配置文件並重新安裝來解決此問題。

1

我發現我能夠通過在NuGet中更新Selenium包來解決Firefox Selenium中的這個問題。

但是,如果出現類似問題,仍然會出現手動更新Chrome和IE驅動程序的問題。

0

重新安裝FF瀏覽器修復了這個問題。

+1

即使重新安裝FF錯誤發生得非常頻繁,所以每次重新安裝都很煩人,還有沒有其他解決方案。 –

0

1)降級您的Firefox來< 19,因爲如果我沒有記錯的webdriver 2.33支持格言火狐19

2)

FirefoxProfile profile = new FirefoxProfile(); 
profile.Port = 9966; 
Global.Driver = new FirefoxDriver(profile); 

附:我使用的是Firefox 16沒有這個問題

1

我在NUnit中運行測試時也遇到了問題。我找到了很多解決方案來刪除或降級你的Firefox。但我用另一種方式解決了這個問題,我刪除了所有與Web驅動相關的參考,並將升級Web驅動添加到解決方案中。

在我的應用程序中,webdriver版本是2.24,所以我換成了2.43,現在我的測試運行正常。

0

我有硒版本2.37.xx與Firefox瀏覽器同樣的問題,42.0 更新版本硒問題2.48.2固定後

1

我這個問題與Firefox(42)和Selenium(2.48.2)的最新版本有關。卸載並重新安裝(通過Nuget)爲我解決了這個問題。

8

解決方案是餡餅:)那麼容易

右鍵點擊你的.NET(C#)項目,然後選擇 '管理的NuGet包...' 選項,如下圖所示:

enter image description here

然後選擇Selenium特定的軟件包,它們需要更新以便更新它們。

enter image description here

更新軟件包將被自動更新。

enter image description here

這對我的作品。

+0

也爲我工作。謝謝! –

0

我正在C#上使用WebDriver 2.53/Firefox 46.嘗試重新安裝東西,手動重新添加等,但將Firefox降級到43,爲我解決了這個問題。

0

更新通過「NuGet」是什麼幫助我。 Firefox 47和Selenium Webdriver 2.53無法正常工作。檢查硒站點時,仍顯示「2.53」爲最新的。雖然檢查「NuGet」,但我看到有一個「2.53.1」版本可用。安裝該版本讓我的Firefox 47重新運行。

-2

Error image

請參閱錯誤形象,我完全卸載並重新安裝version46,事情解決了。

2

版本

FF V48 硒的webdriver v2.53.1
視窗7(64)
.NET 4.0和.NET 4.5

嘗試修復

作爲每@jaffa我手動添加以下refereces並得到了問題:

WebDriver.dll v2.53.1
WebDriver.Support.dll v2.53.1


我再未被引用他們跟着@HassanRahman和使用的NuGet:

WebDriver.dll v2.53.1
WebDriver.Support.dll v2.53.1

同樣的錯誤。

OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000


故障排除

我有預感,並決定從針對.NET 4.5降級到.NET 4.0(完全沒有客戶端配置文件),並改爲錯誤:

An unhandled exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll Additional information: Cannot find Firefox binary in PATH or default install locations. Make sure Firefox is installed. OS appears to be: Vista

我想知道這是爲什麼重新安裝FireFox的人重新開始工作?

某處必須有一組註冊表項或環境變量來查找FireFox的ApplicationStartupPath。你可以看到一些這些路徑在此的ProcessMonitor跟蹤:

enter image description here

在上面的截圖中可以看到應用程序(AstrobLabe)我使用運行此行代碼:

using (IWebDriver driver = new FirefoxDriver(ffprofile)) 

它會導致對於Firefox V48搜索和尋找在錯誤的目錄

C:\ Program Files文件(x86)的\ Mozilla Firefox的\ FireFox.exe

在我的系統Firefox是安裝在:

C:\ Program Files文件(x86)的\ Mozilla的\火狐\ FireFox.exe

反正發現和糾正這個問題(無法找到Firefox的二進制在PATH或默認安裝位置)是爲其他人修復的,我只是將Firefox目錄複製到Mozilla FireFox。

但隨後又回到了原來的錯誤:

An unhandled exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll Additional information: Failed to start up socket within 45000 milliseconds. Attempted to connect to the following addresses: 127.0.0.1:7055

解決方案

那時,我發現這個答案,說,FireFox的V46可與硒2.53傳來: Which Firefox version is compatible with Selenium 2.53.0?

當我降級我看到FFv46安裝到:

C:\ Program Files(x 86)\ Mozilla Firefox的\ FireFox.exe

因此請確保安裝FF是在這個位置 - 這基礎上的ProcessMonitor微量硒找不到:

C:\ Program Files文件(x86)的\ Mozilla的\ Firefox \ FireFox.exe

+0

感謝您的回答。你怎麼知道在過程監視器中使用哪個過濾器?當我在過濾器中使用解決方案名稱時(即「進程名稱爲」),我沒有任何結果。 – testerjoe2

+1

只需重置過濾器並搜索「Firefox.exe」我正在運行的應用程序稱爲Astrolabe--它具有使用(IWebDriver驅動程序=新FirefoxDriver(ffprofile))的代碼行 - 因此,我將ProcMon過濾爲Astrolabe.vshost .exe –

+0

謝謝。這有一點幫助。我在路徑列中看不到任何問題。找到了firefox二進制文件的路徑。現在,我不知道是什麼導致了這個問題。我有最新的webdriver,firefox,但在Win 7,64bit上VS VS 2012。 – testerjoe2

0

沒有一個以前的答案明確指出Selenium WebDriver的特定版本與特定版本的Firefox一起工作。 This SO question告訴我們Webdriver/Firefox兼容性矩陣是here

另一件值得說明的事情是,當新版本變得可用時,Firefox會自動更新或自動更新,具體取決於設置。由於Webdriver不會自動進行自我更新,因此當Firefox更新爲Webdriver版本不支持的版本時,Webdriver/Firefox兼容性將意外中斷並且測試腳本將停止運行。我懷疑上面的答案指示用戶使用Nuget重新安裝Webdriver只需選擇最新的Webdriver,它可以與剛剛安裝在您計算機上的最新Firefox一起使用。

爲了防止Firefox自身升級,點擊Firefox中的菜單按鈕(三個單槓,右上角),選擇「Options」,選擇左邊菜單中的「Advanced」,選擇「Update」選項卡頂部,你會看到「Firefox更新」下的一組單選按鈕。選擇其他「自動安裝更新」的設置。

相關問題