Selenium Manager无法获取Chrome:CMD正常VS运行报错求助
问题场景
在应用目录下通过CMD执行./selenium-manager --browser chrome可正常获取ChromeDriver路径(C:\Temp\Selenium\chromedriver.exe)和Chrome路径(C:\Program Files\Google\Chrome\Application\chrome.exe),但在Visual Studio中执行代码IWebDriver driver = new ChromeDriver();时,抛出OpenQA.Selenium.NoSuchDriverException,提示“Unable to obtain chrome using Selenium Manager”,且Selenium Manager进程异常退出(错误代码69),日志显示驱动路径和浏览器路径均为空。
以下是针对性的解决方法:
检查并同步Selenium Manager的运行目录
Visual Studio默认将项目输出目录(如bin/Debug/net6.0)作为运行工作目录,而非应用源码根目录。需确认selenium-manager.exe存在于当前运行的输出目录中:- 手动复制应用根目录下的
selenium-manager.exe到输出目录; - 或在项目属性的生成事件中添加自动复制命令:
copy "$(ProjectDir)selenium-manager.exe" "$(TargetDir)"
- 手动复制应用根目录下的
手动指定Selenium Manager路径
初始化ChromeDriver时显式指定Selenium Manager的完整路径,避免环境路径查找失败:var driverService = ChromeDriverService.CreateDefaultService(); driverService.SeleniumManagerPath = @"C:\你的应用根目录\selenium-manager.exe"; IWebDriver driver = new ChromeDriver(driverService);提升Visual Studio运行权限
错误代码69可能关联权限不足问题,右键以管理员身份启动Visual Studio后重新运行项目。关闭VS调试的隔离/沙箱功能
若启用了代码覆盖率、沙箱调试等功能,暂时关闭这类可能限制进程执行权限的选项后重试。绕过Selenium Manager,手动指定驱动和浏览器路径
直接使用已确认可用的ChromeDriver和Chrome路径初始化:var options = new ChromeOptions(); options.BinaryLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe"; IWebDriver driver = new ChromeDriver(@"C:\Temp\Selenium", options);更新版本确保兼容性
升级Selenium NuGet包至最新稳定版,同时确认Chrome浏览器版本与ChromeDriver版本完全匹配,避免版本兼容问题导致检测失败。
内容的提问来源于stack exchange,提问作者osmarditto

