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
相关产品推荐
相关产品推荐

