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

Safari 17.3.1中使用SendKeys无法输入d、e、f字符问题求助

SafariDriver 17.3.1 无法在textarea输入"d""e""f"字符的解决办法

针对SafariDriver 17.3.1中SendKeys无法向textarea输入"d""e""f"的问题,以下两种方案可绕过该驱动bug:

方案1:通过JavaScript直接设置文本框值

直接操作DOM元素的value属性,完全绕过SendKeys的交互逻辑,适合大多数场景:

IWebElement input = driver.FindElement(By.Id("input"));
// 设置textarea的内容
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].value = arguments[1];", input, "def");
// 若页面依赖input事件触发后续逻辑,额外触发事件
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].dispatchEvent(new Event('input'));", input);

方案2:模拟剪贴板粘贴

模拟手动复制粘贴的操作,避开SendKeys的字符输入问题:

// 将目标文本复制到系统剪贴板
Clipboard.SetText("def");
IWebElement input = driver.FindElement(By.Id("input"));
input.Click();
// Safari中使用Cmd+V粘贴(Windows环境替换为Keys.Control)
new Actions(driver)
    .KeyDown(Keys.Command)
    .SendKeys("v")
    .KeyUp(Keys.Command)
    .Perform();

说明

该问题是SafariDriver 17.3.1的特定版本bug,手动输入正常说明页面textarea元素本身无异常,仅驱动与浏览器的字符输入交互存在问题。上述两种方法均已验证可替代SendKeys完成输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:11:21