Selenium找不到chromedriver.exe

moh*_*eli 15 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>
Run Code Online (Sandbox Code Playgroud)

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

chromedriver.exe文件不存在于当前目录或PATH环境变量的目录中.该驱动程序可以从http://chromedriver.storage.googleapis.com/index.html下载.

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

我在这里想念什么?

teh*_*one 17

我无法解释为什么它以这种方式工作,但这就是我如何使它工作.

IWebDriver driver = new ChromeDriver(".");
Run Code Online (Sandbox Code Playgroud)

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

IWebDriver driver = new ChromeDriver("chromedriver.exe");
Run Code Online (Sandbox Code Playgroud)

这导致了这个消息:

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

所以只是为了踢,我试图传入"."路径并且它起作用.

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

IWebDriver driver = new ChromeDriver(Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)