Selenium找不到chromedriver.exe

时间:2017-12-20 16:13:16

标签: c# selenium .net-core

我们正在升级到.NET Core,我们有一个使用Selenium进行某些任务的爬网引擎。我们使用chromedriver.exe,它在.NET 4.6.1中运行良好。

对于.NET Core,我们创建了一个控制台应用程序,并添加了这些包:

  <ItemGroup>
    <PackageReference Include="Selenium.WebDriver" Version="3.8.0" />
    <PackageReference Include="Selenium.Support" Version="3.7.0" />
    <PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="2.34.0" />
  </ItemGroup>

但是当我运行我的代码时,我收到了这个错误:

  

chromedriver.exe文件在当前目录中不存在或   在PATH环境变量的目录中。司机可以   已在http://chromedriver.storage.googleapis.com/index.html下载。

我可以看到构建后,chromedriver.exe被复制到bin\Debug\netcoreapp2.0文件夹。我还手动将其复制到bin\Debug文件夹。但在这两种情况下都无法找到。

我在这里想念什么?

2 个答案:

答案 0 :(得分:14)

我无法解释为什么它会以这种方式运作,但这就是我开始工作的方式。

IWebDriver driver = new ChromeDriver(".");

我最初将驱动程序复制到与Program.cs相同的目录中,并将路径传递给驱动程序,如下所示:

IWebDriver driver = new ChromeDriver("chromedriver.exe");

这导致了这条消息:

  

文件chromedriver.exe \ chromedriver.exe不存在。

所以只是为了踢,我尝试传递"."的路径并且它有效。

这可能是一个更好的解决方案。驱动程序需要与应用程序代码位于同一目录中。不在/bin目录中,这将起作用。

IWebDriver driver = new ChromeDriver(Directory.GetCurrentDirectory());

答案 1 :(得分:0)

我也面临着同样的问题,并且已经通过这种方式解决了。

首先找到您的Chrome版本。

帮助->关于Google Chrome。在那里,您会找到您的版本号。

然后复制下面提供的URL,并将您当前的Chrome版本号放入那些反逗号,然后按Enter。它将直接将您重定向到最新下载。

https://chromedriver.storage.googleapis.com/index.html?path=“” //(完整URL) 下载Zip,解压缩并实施。