Selenium chromedriver无法工作。

8

我仍然无法解决这个问题。几天前,我的Selenium还能正常工作;现在它却给我抛出了一些错误。我最初使用NuGet,然后尝试手动安装。

如何重现这个问题:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System.Threading.Tasks;

namespace Debug
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                IWebDriver driver = new ChromeDriver();
                driver.Navigate().GoToUrl("http://stackoverflow.com/");
            }
            catch (Exception ex)
            {
                Console.Clear();
                Console.WriteLine(ex);
                Console.ReadKey();
            }
        }
    }
}

错误:

OpenQA.Selenium.WebDriverException:向远程WebDriver服务器发送HTTP请求的响应为空时抛出异常,URL为http://localhost:60695/session。异常状态为ReceiveFailure,消息为:底层连接关闭:接收时发生意外错误。---> System.Net.WebException:底层连接关闭:接收时发生意外错误。---> System.IO.IOException: 从传输连接无法读取数据:现有连接已被远程主机强制关闭。---> System.Net.Socket

如何安装Selenium:

http://selenium-release.storage.googleapis.com/3.0/selenium-dotnet-3.0.0.zip下载Selenium。

然后在VS中将仅dll添加到引用中。


我自上周以来也遇到了同样的问题。奇怪的是,测试在我们的UAT服务器上继续工作,但在本地却出现与您相同的错误。 - Emanuele Ciriachi
升级到更高版本的chromedriver解决了我的问题! - Emanuele Ciriachi
2个回答

11

按以下顺序安装NuGet包:

Install-Package Selenium.WebDriver


Install-Package Selenium.WebDriver.ChromeDriver

我希望它能够正常工作。


1
这里最重要的是 Install-Package Selenium.WebDriver.ChromeDriver - Rob

0

我刚刚解决了我们系统上的问题,并想分享或设置解决方案。

我们在Selenium之上有一个包装库。该包装器使用Nuget软件包,但我们为每个软件集拥有的项目都引用了我们的库。在这种情况下,Chrome驱动程序将不会被复制到输出目录,并且会出现此错误。

每个引用我们包装库的项目都链接到来自包装库输出的chromedriver。这样,我们就可以维护不同版本的库。

我们的解决方法只是将chromedriver.exe的复制本地设置为true。关键是,如果您在构建后的构建文件夹中没有chomedriver.exe,则可能会出现此错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接