唯有一笑 2025-10-13 11:33 采纳率: 0%
浏览 5

怎么解决这种问题?(标签-Selenium)

OpenQA.Selenium.Edge.EdgeOptions] 不包含名为 “AddArgument” 的方法
这个错是啥问题

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2025-10-13 11:34
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你遇到的错误信息是:

    OpenQA.Selenium.Edge.EdgeOptions] 不包含名为 “AddArgument” 的方法

    这个错误通常发生在使用 Selenium WebDriver 时,特别是在尝试为 Microsoft Edge 浏览器 设置选项时。具体来说,是调用了 EdgeOptions 类中的一个不存在的方法 AddArgument


    ✅ 问题原因分析

    Selenium 4 及以上版本中,AddArgument 方法已经被弃用,取而代之的是 AddArgumentAddArguments 的新方式。

    ❌ 错误写法(旧版):

    var options = new EdgeOptions();
    options.AddArgument("--headless");
    

    ✅ 正确写法(新版):

    var options = new EdgeOptions();
    options.AddArgument("--headless"); // 这个方法其实还是存在的,但需要确认是否正确引用了库
    

    或者更推荐的方式:

    var options = new EdgeOptions();
    options.AddArguments("--headless", "--disable-gpu");
    

    🛠 解决方案

    以下是解决该问题的详细步骤:

    1. 检查 Selenium 版本

      • 如果你使用的是 Selenium 4 或更高版本,请确保你使用的是正确的 API。
      • 如果你使用的是 Selenium 3 或更低版本,可能需要升级到 Selenium 4 或更新相关依赖。
    2. 确认你是否正确引用了 OpenQA.Selenium 命名空间

      • 确保你的代码中包含了:
        using OpenQA.Selenium;
        using OpenQA.Selenium.Edge;
        
    3. 使用 AddArguments 方法代替 AddArgument

      • AddArgument 是单个参数,AddArguments 可以传入多个参数。
      • 示例:
        var options = new EdgeOptions();
        options.AddArguments("--headless", "--disable-gpu");
        
    4. 确保 EdgeDriver 与浏览器版本兼容

      • 下载并安装与当前 Edge 浏览器版本匹配的 EdgeDriver
      • 检查你的项目中是否引用了正确的 EdgeDriver DLL。
    5. 更新 NuGet 包

      • 在 Visual Studio 中右键点击项目 → 管理 NuGet 程序包
      • 更新以下包:
        • Selenium.WebDriver
        • Selenium.WebDriver.MicrosoftEdge
        • Selenium.Support

    🧾 示例代码(修正后)

    using OpenQA.Selenium;
    using OpenQA.Selenium.Edge;
    
    class Program
    {
        static void Main(string[] args)
        {
            var options = new EdgeOptions();
            options.AddArguments("--headless", "--disable-gpu"); // 使用 AddArguments 添加多个参数
    
            IWebDriver driver = new EdgeDriver(options);
            driver.Navigate().GoToUrl("https://www.example.com");
            Console.WriteLine(driver.Title);
            driver.Quit();
        }
    }
    

    🔍 其他常见问题排查

    • 确保 EdgeDriver 路径正确:如果 EdgeDriver 没有放在系统 PATH 中,可以手动指定路径:

      var options = new EdgeOptions();
      options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";
      
    • 检查浏览器版本是否与 EdgeDriver 兼容


    📌 总结

    | 问题 | 解决方案 | |------|----------| | AddArgument 方法不存在 | 使用 AddArguments 替代,并确保使用最新 Selenium 版本 | | EdgeDriver 不兼容 | 下载与 Edge 浏览器版本匹配的 EdgeDriver | | 引用错误 | 确保正确引用 OpenQA.SeleniumSelenium.WebDriver.MicrosoftEdge |

    如果你能提供你使用的 Selenium 版本、C# 项目类型和完整错误日志,我可以进一步帮助你定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月13日