Visual Studio for Mac无法识别PATH中的Chrome Driver问题求助
问题描述
我刚上手用C#开发Selenium WebDriver,之前一直在Windows上用Java和Python做开发。现在也是第一次接触OSX、Visual Studio和C#。我创建了一个.NET控制台应用项目,已经通过NuGet安装了Selenium包,下载了ChromeDriver并放到了项目路径里,还把ChromeDriver的路径添加到了bash_profile里,但还是遇到了这个错误:
OpenQA.Selenium.DriverServiceNotFoundException has been thrown "The chromedriver file does not exist in the current directory or in a directory on the PATH environment variable. The driver can be downloaded at https://chromedriver.storage.googleapis.com/index.html."
我的环境:
- Visual Studio 7.5(build 1254)
- macOS High Sierra Version 10.13.4
附上相关截图:
恳请各位帮忙,需要更多信息我会及时补充,谢谢!
解决方案建议
我来帮你排查这个问题,结合你当前的环境和操作,给你几个针对性的解决方向:
1. 先搞定ChromeDriver的权限问题
macOS下下载的ChromeDriver默认没有可执行权限,这是很容易忽略的点。打开终端,导航到ChromeDriver所在的目录,执行这条命令:
chmod +x chromedriver
没有可执行权限的话,就算路径对了Selenium也调用不了它。
2. 确认PATH配置真的生效了
- 你修改bash_profile后,有没有执行
source ~/.bash_profile让配置立即生效?如果没有的话,终端和应用都不会读取新的PATH。 - 另外,Visual Studio需要重启才能获取到新的环境变量,修改PATH后直接打开VS是没用的,先关掉再重新打开试试。
- 可以在终端里输入
echo $PATH,看看ChromeDriver所在的目录是不是在输出列表里,如果没出现,检查bash_profile里的路径有没有写错(比如有没有多打空格,路径是不是绝对路径)。
3. 直接在代码里指定ChromeDriver路径
如果环境变量的方式始终有问题,不如直接在代码里硬编码路径,绕开PATH的问题。比如:
using OpenQA.Selenium.Chrome; namespace YourConsoleApp { class Program { static void Main(string[] args) { // 替换成你ChromeDriver的实际绝对路径,比如项目根目录下的路径 var driverPath = @"/Users/yourname/Projects/YourConsoleApp/chromedriver"; var options = new ChromeOptions(); var driver = new ChromeDriver(driverPath, options); // 后续测试代码... driver.Navigate().GoToUrl("https://www.google.com"); } } }
这样Selenium就会直接去你指定的路径找驱动,不用依赖环境变量了。
4. 检查Chrome和ChromeDriver的版本匹配
Selenium对ChromeDriver和Chrome浏览器的版本匹配要求很严格,如果版本不兼容也会报找不到驱动的错误。你可以打开Chrome,点击菜单里的「关于Google Chrome」查看版本,然后去对应下载相同大版本的ChromeDriver(比如Chrome是98.x,就下载98.x的ChromeDriver)。
内容的提问来源于stack exchange,提问作者Paul Laguna

