【问题标题】:Selenium WebDriver with ChromeDriver - C# Visual Studio 2012. Debugging impossibleSelenium WebDriver with ChromeDriver - C# Visual Studio 2012。无法调试
【发布时间】:2017-05-19 19:51:27
【问题描述】:

如果使用 ctrl+F5(非调试)运行,很少行程序可以完美运行,但使用 F5(调试)运行时会抛出异常:

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

此语句抛出“无法建立连接,因为目标机器主动拒绝它”异常,没有内部异常。

再次,它与 ctrl-f5 完美配合

  • Windows 7 x64
  • VS 2012
  • 使用 Selenium WebDriver NuGet Packcge 2.35(最新)
  • 使用 ChromeDriver.exe (v2.4.226107)(最新)
  • 所有防火墙和杀毒软件等都被杀死。
  • 以管理员身份运行 VS 并关闭 UAC

为什么调试和不调试运行有这种区别? (我知道调试器有宿主进程请不要解释)

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

有什么想法吗? 提前谢谢

【问题讨论】:

  • 可以在另一台机器上重现吗?

标签: c# visual-studio-2012 selenium selenium-chromedriver


【解决方案1】:

感谢所有花时间阅读和思考这个问题的人。 我已经解决了。好吧,这是一件愚蠢的事情,但我很确定这里有类似的问题抱怨 Selenium WebDriver 和

“无法建立连接,因为目标机器主动拒绝”异常

有这个解决方案,并且那里的其他答案错过了发布的已解决和已采取的操作之间的相关性。他们中的大多数建议使用其他版本的 ChromeDriver.exe 并谈论版本不兼容和 ChromeDriver.exe 错误。

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

“错误”来自 WebDriver 程序集,与 ChromeDriver.exe 无关。我已经检查了 WebDriver 的来源,这里是:

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

当 DriverService 类启动时,ChromeDriver.exe 立即开始使用请求轮询它。因为启动过程需要时间,所以在前几十次尝试中端口没有打开......(至少 Sleep(10) 或 Sleep(50) 在这里会很好,但无论如何)

现在重点:如果你太不走运了,你没有检查 VS 2012 Options/Debug/General 'Enable Just My Code' 并且你检查了 Debug/ Exceptions/Thrown then debugger will break by this exception,但当然你不会看到源代码,异常行将是你的行

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

根据时间(进程启动),您可能会重复几次,您会认为您的端口、防火墙、ChromeDriver.exe 版本等与异常有关。

【讨论】:

    【解决方案2】:

    我曾经也遇到过这个错误..经过数小时的调试..终于得到了真正的错误显示...我对 I.E. 的看法浏览器设置为 125% ......当我将其更改回 100% 时......它起作用了。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多