一尘不染

selenium找不到chromedriver.exe

selenium

我们正在升级到.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文件夹。但是在两种情况下都找不到。

我在这里想念什么?


阅读 388

收藏
2020-06-26

共1个答案

一尘不染

我无法解释为什么它会这样工作,但这就是我如何使其工作。

IWebDriver driver = new ChromeDriver(".");

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

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

这导致了此消息:

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

因此,我只是为了踢球而尝试通过"."这条路,并且它起作用了。

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

IWebDriver driver = new ChromeDriver(Directory.GetCurrentDirectory());
2020-06-26