2013-10-16 65 views
1

几行程序与F5(调试)运行时,完美地工作,如果用Ctrl + F5(不调试)运行,但会抛出异常:硒的webdriver与ChromeDriver - C#的Visual Studio 2012年调试不可能

private static void Main(string[] args) 
{ 
    IWebDriver driver = new ChromeDriver(@"C:\Program Files (x86)\ChromeDriver"); 

本声明抛出“无法连接,因为目标机器主动拒绝它”异常,没有内部异常。

此外,它完美地用Ctrl-F5

  • Windows 7的64位
  • VS 2012
  • 使用硒的webdriver的NuGet Packcge 2.35(最新)
  • 使用ChromeDriver.exe(V2 .4.226107)(最新)
  • 所有防火墙和antivrus等被打死。
  • 运行VS为admin和UAC关闭

为什么调试,调试没有运行之间的差异? (我知道调试器有一个主机进程请不要说明)

如何在调试模式下运行这个简单的程序?

任何想法? THX提前

+0

在另一台机器上重现? – Arran

回答

2

感谢所有谁花时间阅读和思考这个问题。 我解决了它。嗯,这是一个愚蠢的事情,但我敢肯定的是,这里类似的问题抱怨硒的webdriver和

“无连接可以作出,因为目标机器积极地拒绝它”异常

了这项决议,以及其他答案有错过了已发布的解决和采取行动之间的关联。他们大多建议使用ChromeDriver.exe的其他版本和谈论版本不兼容和ChromeDriver.exe错误。

我认为(至少我的情况)这些决议都是假的。

的“错误”来自webdriver的组件,而不是关于ChromeDriver.exe。我已经研究webdriver的来源,那就是:

while (!processStarted && DateTime.Now < timeout) 
{ 
    try 
    { 
     request.GetResponse(); 
     processStarted = true; 
    } 
     catch (WebException) 
    { 
} 

当DriverService类开始ChromeDriver.exe立即开始与请求轮询它。因为启动过程需要时间,所以端口不会打开,前几个尝试......(至少有一个睡眠(10)或睡眠(50)将在这里很好,但无论如何)

现在点:如果你是如此不幸,你没有检查VS 2012选项/调试/常规'启用仅我的代码” 你检查调试/例外/抛出,则调试器将通过这个异常突破,但当然你不会看到源代码,异常线将是你的线

IWebDriver driver = new ChromeDriver(@"C:\Program Files (x86)\ChromeDriver"); 

取决于时机(进程启动),你可以重复几次,你会认为你的端口,防火墙,ChromeDriver.exe版本等与异常有关。

0

我在一个点上也有这个错误,并且经过几个小时的调试......终于得到真正的错误显示......我对I.E的看法。浏览器被设置为125%...当我将其改回100%时...它工作。 :)