You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS 2017使用Selenium.WebDriver NuGet包时找不到chromedriver.exe

解决VS2017中Selenium ChromeDriver找不到的问题

我之前也碰到过类似的情况,VS2015里用NuGet装Selenium顺风顺水,到了VS2017就抛出DriverServiceNotFoundException,其实大多是驱动复制、版本兼容或者项目配置的问题,给你几个排查和解决的步骤:

1. 先确认驱动是否真的在输出目录里

VS2017的构建行为和2015有些差异,Selenium.Chrome.WebDriver包默认应该把chromedriver.exe复制到项目的bin/Debug或bin/Release目录下,但有时候会失效。你可以手动去对应的输出文件夹里找一找:

  • 如果找不到,说明NuGet包的自动复制逻辑没生效,得往下看后续步骤;
  • 如果找到了,那可能是版本不兼容或者路径识别的问题。

2. 检查Selenium包的版本兼容性

你用的是Selenium.WebDriver 3.11.1搭配Selenium.Chrome.WebDriver 2.37.0,这两个版本其实不兼容!WebDriver和ChromeDriver的版本是有严格对应关系的:

  • Selenium.WebDriver 3.11.x对应的ChromeDriver版本应该是2.38到2.41之间,2.37.0版本太老了,WebDriver无法识别它。
  • 解决办法:卸载当前的Selenium.Chrome.WebDriver,安装和WebDriver 3.11.1匹配的版本(比如2.40.0),或者直接升级WebDriver到较新的稳定版,再安装对应版本的ChromeDriver。

3. 修复NuGet包的自动复制设置

如果是PackageReference格式的项目(VS2017默认可能用这个),有时候包的复制文件配置会出问题:

  • 右键项目 -> 管理NuGet程序包,找到Selenium.Chrome.WebDriver,确认它的安装状态,尝试卸载后重新安装;
  • 检查项目文件(.csproj)里是否有类似下面的配置,如果没有,手动添加(注意替换版本号):
<ItemGroup>
  <PackageReference Include="Selenium.Chrome.WebDriver" Version="2.40.0">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
  </PackageReference>
</ItemGroup>

4. 手动指定驱动路径(临时解决方案)

如果上面的方法都不行,可以在代码里手动指定chromedriver的路径,确保WebDriver能找到它:

using System.IO;
using System.Reflection;
using OpenQA.Selenium.Chrome;

// 获取当前程序集的输出目录
string driverDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
ChromeOptions options = new ChromeOptions();
ChromeDriver driver = new ChromeDriver(driverDirectory, options);

5. 清理并重建解决方案

有时候旧的构建缓存会导致文件复制异常:

  • 点击菜单栏的“生成” -> “清理解决方案”;
  • 然后删除项目的bin和obj文件夹;
  • 最后重新构建解决方案,让NuGet重新复制所有依赖文件。

内容的提问来源于stack exchange,提问作者Frank H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:12:02