2015-06-24 61 views
2

異常堆棧跟蹤:硒webdriver的火狐在WCF拋出「沒有內45000毫秒啓動插座」

OpenQA.Selenium.WebDriverException:無法內45000毫秒啓動插座。試圖連接到以下的地址:在OpenQA.Selenium.Firefox.FirefoxDriverCommandExecutor 127.0.0.1:7055 在OpenQA.Selenium.Firefox.FirefoxDriverServer.ConnectToBrowser(時間跨度timeToWait) 在OpenQA.Selenium.Firefox.FirefoxDriverServer.Start() .Execute(命令commandToExecute) 在OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串driverCommandToExecute,Dictionary'2參數) 在OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) 在OpenQA.Selenium.Remote.RemoteWebDriver ..(ICommandExecutor commandExecutor,ICapabilities desiredCapabilities) at DtvAutomation.Selenium.Api.SeleniumFirefoxTest.CreateWebDriver() at DtvAutomation.Selenium.Api.SeleniumTest'1.Run()

拋出異常呼籲火狐webdriver的構造函數的代碼:

protected override FirefoxDriver CreateWebDriver() 
{ 
    lock(this.syncRoot) 
    { 
     var ffBinary = new FirefoxBinary(); 
     var ffProfile = new FirefoxProfile(); 
     return new FirefoxDriver(
      binary: ffBinary, 
      profile: ffProfile, 
      commandTimeout: TimeSpan.FromMinutes(2)); 
    } 
} 

我使用硒2.46(通過NuGet包)從一個Visual Studio 2013 - 「WCF應用服務」 項目。 Firefox是38.0.5(最新)。 當我從Visual Studio啓動WCF(調試模式)時,一切正常 - 沒有例外。當我將WCF發佈到本地IIS時,會引發此錯誤。

我嘗試了以下幾件事:

  • 更新的NuGet包 - 確保我了最新
  • 降級火狐34.0.5版本
  • 升級到Firefox的最新
  • 版本
  • 從防火牆打開的端口7055
  • 更改IIS應用程序/應用程序池的憑據,使用管理員帳戶
  • On exc eption,重新嘗試使用另一個端口初始化WebDriver

這些看起來都不起作用。 任何想法可能是什麼問題?

+0

你可以編輯問題。並在那裏添加相關內容,大多數用戶不會閱讀評論。評論也可能會在稍後的時間被刪除。 – Panther

+0

感謝提示 - 更新了問題 –

+0

很可能與堆的解決方案重複:http://stackoverflow.com/a/39362003/495455 –

回答

0

我有同樣的問題,解決方案是將應用程序池標識從「ApplicationPoolIdentity」切換到更強大的用戶。

0

我剛剛面臨類似的問題。我用 硒webdriver的NuGet包v2.48 版Firefox 41.0

起初,以爲它是與FF和之間的webdriver版本衝突的問題,我升級的webdriver到這個版本。沒有固定的。 接下來,我將FF降級到v 31.0。沒有固定的。 第三,我想什麼是最近的變化,這是這一行代碼爲我

p.SetPreference("webdriver.log.file", "/tmp/firefox_console"); 

內碼

  FirefoxProfile p = new FirefoxProfile(); 
      //p.SetPreference("webdriver.log.file", "/tmp/firefox_console"); 
      //p.SetPreference("dom.ipc.plugins.flash.disable-protected-mode", true); 
      driver = new FirefoxDriver(p); 
      driver.Manage().Window.Maximize(); 

此塊註釋掉SetPreference方法= 成功後! Firefox按預期開放。

1

我有同樣的問題。將應用程序池標識更改爲像LocalSystem這樣的問題解決了問題,但您不希望在生產環境中這樣做。

取而代之,我在應用程序池的高級設置中找到了一個設置LoadUserProfile,該設置被設置爲False。如果將其設置爲True,那麼應用程序池將加載用戶配置文件,從而擺脫Selenium問題。

您需要至少運行IIS 7,並且您可以閱讀有關設置here的更多信息。

+0

@Elmue OP問了一個關於Firefox WebDriver通過WCF/IIS運行的問題。如果你有什麼建設性的補充,請做。 – lasseschou

-1

我認爲問題狀態與Firefox的webdriver超時。您可以使用包含Firefox配置文件和TimeSpan的以下內容來減少Firefox Web驅動程序的超時。

IWebDriver driver = new FirefoxDriver(new FirefoxBinary(), 
             new FirefoxProfile(), 
             TimeSpan.FromSeconds(180)); 
+0

這個答案是無稽之談 – Elmue

相關問題