Selenium启动Chrome时隐藏命令提示符窗口的问题求助
问题解决方案
1. 修复ChromeDriver与Chrome版本不兼容问题
报错System.InvalidOperationException: 'session not created: This version of ChromeDriver only supports Chrome version 85'的核心原因是Chrome浏览器与ChromeDriver版本不匹配,按以下步骤解决:
- 查看当前Chrome版本:打开Chrome,点击右上角菜单→帮助→关于Google Chrome,记录版本号(如120.x.x.x)
- 下载对应版本的ChromeDriver:需保证ChromeDriver的主版本号与Chrome完全一致,比如Chrome为120.0.6099.109,就下载同版本的ChromeDriver
- 将下载的
chromedriver.exe放到项目可执行文件目录,或在代码中明确指定驱动路径
2. 修正Chrome路径/驱动路径的错误
第二段代码中chromeOptions.BinaryLocation的设置有误:该属性用于指定Chrome浏览器的exe文件路径,而非ChromeDriver的文件夹路径。若要指定ChromeDriver的位置,需通过ChromeDriverService.CreateDefaultService的参数实现,而非BinaryLocation。
正确代码示例
场景1:ChromeDriver在项目目录,Chrome为默认安装
// 创建驱动服务,若ChromeDriver在项目根目录可省略路径参数,否则填入驱动所在文件夹路径 var driverService = ChromeDriverService.CreateDefaultService("ChromeDriver所在文件夹路径"); driverService.HideCommandPromptWindow = true; // 隐藏命令提示符窗口 var chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("--headless"); // 启用无头模式 // 若Chrome为默认安装无需设置BinaryLocation;绿色版Chrome需指定exe路径: // chromeOptions.BinaryLocation = @"C:\Users\TriX\Downloads\Chrome\chrome.exe"; var browser = new ChromeDriver(driverService, chromeOptions);
场景2:使用绿色版Chrome与指定路径的ChromeDriver
// 指定ChromeDriver所在文件夹路径 var driverService = ChromeDriverService.CreateDefaultService(@"C:\Users\TriX\Downloads\chromedriver_win32"); driverService.HideCommandPromptWindow = true; var chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("--headless"); // 此处需填写Chrome浏览器的exe文件路径,而非文件夹 chromeOptions.BinaryLocation = @"C:\Users\TriX\Downloads\Chrome\chrome.exe"; var browser = new ChromeDriver(driverService, chromeOptions);
3. 确认命令提示符窗口隐藏设置
driverService.HideCommandPromptWindow = true;这个设置本身是有效的,只要解决前面的版本和路径问题,启动时就不会弹出命令提示符窗口。
内容的提问来源于stack exchange,提问作者TriXcze
相关产品推荐
相关产品推荐

