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

Appium.WebDriver低版本WindowsElement.SendKeys("-")失效,输入"-12"仅得"12"求助

解决Appium.WebDriver旧版本SendKeys无法输入负号的问题

针对你使用Appium.WebDriver 4.2.1/4.4.5版本遇到的WindowsElement.SendKeys("-")被忽略、SendKeys("-12")仅收到"12"的问题,且仅本地环境复现的情况,给你几个无需升级版本的绕过方案:

  • 改用键盘按键事件模拟输入负号
    避开SendKeys对特殊字符的处理逻辑,直接调用键盘按键常量发送减号:

    // 主键盘减号
    element.SendKeys(OpenQA.Selenium.Keys.Subtract);
    // 若主键盘无效,试试数字小键盘的减号
    element.SendKeys(OpenQA.Selenium.Keys.NumPadSubtract);
    
  • 拆分输入流程分步处理
    输入带负号的内容时,先单独发送负号按键,再输入数字部分:

    element.SendKeys(Keys.Subtract);
    element.SendKeys("12");
    
  • 统一本地输入法状态
    构建系统无问题大概率是环境差异,比如本地用中文输入法时,负号的输入逻辑被干扰。测试前强制切换到英文输入法:

    // 按Ctrl+Shift切换(根据你的系统快捷键调整)
    driver.Keyboard.SendKeys(Keys.Control + Keys.Shift);
    element.SendKeys("-12");
    
  • 直接通过JS设置元素值(限输入框)
    如果目标元素是可编辑输入框,跳过SendKeys,直接用JS修改元素的value属性:

    ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].value = arguments[1];", element, "-12");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:26:05