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

Selenium C#中获取EdgeDriver版本的方法

解决EdgeDriver版本获取问题

首先,你的代码存在两处基础语法问题,先修正:

  • C#中字符串转换方法是ToString()(大写T),而非Java风格的toString()
  • 代码末尾多了一个冗余右括号,会导致编译错误

另外注意:你初始化DriverManager时误用了ChromeConfig,获取Edge驱动应当改用EdgeConfig。

针对EdgeDriver版本获取,提供两种可靠方案:

方案1:通过EdgeDriverService直接获取(推荐)

这种方式无需解析Capabilities,直接从驱动服务实例获取版本,逻辑更稳定:

// 创建EdgeDriver服务实例
var edgeService = EdgeDriverService.CreateDefaultService();
// 获取驱动版本
string driverVersion = edgeService.DriverVersion;

// 使用该服务初始化EdgeDriver
var driver = new EdgeDriver(edgeService);

方案2:从Capabilities中解析正确路径

Edge基于Chromium,其Capabilities结构与Chrome略有差异,版本信息通常在msedge字段下的msedgedriverVersion键中。如果不确定具体结构,可以先打印所有Capabilities键值对排查:

new DriverManager().SetUpDriver(new EdgeConfig());
EdgeDriver driver = new EdgeDriver();

try{
    ICapabilities capabilities = driver.Capabilities;
    
    // 打印所有Capabilities键值,明确结构
    foreach (var key in capabilities.GetCapabilityNames())
    {
        Console.WriteLine($"{key}: {capabilities.GetCapability(key)}");
    }
    
    // 解析版本(根据打印结果调整键名)
    var edgeInfo = capabilities.GetCapability("msedge") as Dictionary<string, object>;
    if (edgeInfo != null && edgeInfo.ContainsKey("msedgedriverVersion"))
    {
        string driver_version = edgeInfo["msedgedriverVersion"].ToString();
        Console.WriteLine(driver_version);
    }
}
catch(Exception ex)
{
    Console.WriteLine(ex.Message);
}

内容的提问来源于stack exchange,提问作者Jorge Marín Ferrándiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:25:24