2011-10-05 158 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更新”下的一组单选按钮。选择其他“自动安装更新”的设置。