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

