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

如何解决Selenium C#初始化Web Driver时的无效参数错误?

解决ChromeDriver构造函数无效参数的WebDriverArgumentException错误

问题场景

下载Chrome Web Driver并安装C# NuGet的Selenium包后,编写爬取代码时触发WebDriverArgumentException,提示Web Driver构造函数的选项中使用了无效参数,具体错误信息:

invalid argument session-info: chrome-headless-shell=125.0.6422.113

(翻译:无效参数 会话信息:chrome-headless-shell=125.0.6422.113)

用户原代码如下:

try
{
    string chrome_path = "C:\\Users\\HP\\PycharmProjects\\Scraping\\chromedriver.exe";
    var data = new Dictionary<string, List<string>>()
    {
        {"Home", new List<string>() },
        {"Draw", new List<string>() },
        {"Away", new List<string>() },
    };
    var options = new ChromeOptions();
    options.AddArgument("--headless");
    options.AddArgument("--no-sandbox");
    options.AddArgument("--disable-dev-shm-usage");
    using (var driver = new ChromeDriver(chrome_path, options))
    {
        driver.Navigate().GoToUrl("https://www.betexplorer.com");
        // 页面滚动及后续逻辑
    }
}
catch (WebDriverArgumentException ex)
{
    MessageBox.Show($"An error occurred: {ex.Message}");
}

解决方案

  • 更新无头模式参数:Chrome 112及以上版本中,旧的--headless参数会默认启用轻量的chrome-headless-shell,容易和ChromeDriver出现兼容性问题。将参数改为--headless=new,启用完整无头模式,行为与普通Chrome浏览器一致。
  • 匹配Chrome与ChromeDriver版本:确保Chrome浏览器版本和ChromeDriver版本完全对应(主版本号必须相同,比如Chrome是125.x,ChromeDriver也得是125.x),版本不匹配是这类错误的核心原因之一。
  • 精简环境参数:--no-sandbox和--disable-dev-shm-usage主要用于Linux容器或无桌面环境,Windows下通常不需要,可先移除这两个参数测试。
  • 优化Driver初始化方式:可以通过ChromeDriverService指定路径,或者将ChromeDriver加入系统环境变量后直接初始化,避免路径传递的潜在问题。

修改后的示例代码

try
{
    var data = new Dictionary<string, List<string>>()
    {
        {"Home", new List<string>() },
        {"Draw", new List<string>() },
        {"Away", new List<string>() },
    };
    var options = new ChromeOptions();
    // 使用新版无头模式参数
    options.AddArgument("--headless=new");

    // 方式1:通过ChromeDriverService指定Driver路径
    using (var service = ChromeDriverService.CreateDefaultService(@"C:\Users\HP\PycharmProjects\Scraping"))
    {
        using (var driver = new ChromeDriver(service, options))
        {
            driver.Navigate().GoToUrl("https://www.betexplorer.com");
            // 后续页面操作逻辑
        }
    }

    // 方式2:若ChromeDriver已加入环境变量,可直接初始化
    // using (var driver = new ChromeDriver(options))
    // {
    //     driver.Navigate().GoToUrl("https://www.betexplorer.com");
    //     // 后续页面操作逻辑
    // }
}
catch (WebDriverArgumentException ex)
{
    MessageBox.Show($"发生错误:{ex.Message}");
}

内容的提问来源于stack exchange,提问作者Anthony Kinyua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:25:15