【问题标题】:Sending keys in selenium在 selenium 中发送密钥
【发布时间】:2026-02-02 09:35:01
【问题描述】:

Winform c# selenium webdriver firefox。它给了我这部分代码的错误

builder.KeyDown(OpenQA.Selenium.Keys.F4);

错误

WebDriver.dll 中出现“System.ArgumentException”类型的未处理异常 附加信息:key 必须是修饰键(Keys.Shift、Keys.Control 或 Keys.Alt)

代码

Actions builder = new Actions(driver);
builder.KeyDown(OpenQA.Selenium.Keys.Alt);
builder.KeyDown(OpenQA.Selenium.Keys.Control);
builder.KeyDown(OpenQA.Selenium.Keys.F4);
builder.KeyUp(OpenQA.Selenium.Keys.Alt);
builder.KeyUp(OpenQA.Selenium.Keys.F4);
builder.KeyUp(OpenQA.Selenium.Keys.Control).Build().Perform();

【问题讨论】:

    标签: c# selenium selenium-webdriver


    【解决方案1】:

    我相信你应该像这样使用SendKeys

    builder.KeyDown(OpenQA.Selenium.Keys.Alt);
    builder.KeyDown(OpenQA.Selenium.Keys.Control);
    builder.SendKeys(OpenQA.Selenium.Keys.F4);
    

    【讨论】:

      【解决方案2】:

      最后的代码应该是这样的。

      using OpenQA.Selenium.Interactions;
      
      Actions builder = new Actions(driver);
      builder.KeyDown(Keys.Alt);
      builder.KeyDown(Keys.Control);
      builder.SendKeys(Keys.F4);
      builder.KeyUp(Keys.Alt);
      builder.KeyUp(Keys.F4);
      

      我不确定最后一行是用来做什么的。

      builder.KeyUp(Keys.Control).Build().Perform();
      

      【讨论】: