如何在 Selenium 中使用 sendKeys() 向文本框输入多行内容

本文详解如何在 selenium webdriver(java)中通过 sendkeys() 方法向单行文本框或可编辑区域插入换行内容,核心是组合使用 keys.shift + keys.enter 实现软换行,适用于需逐行输入 csv 格式数据等场景。

在 Web 自动化测试中,常需向

✅ 正确做法(推荐):

WebElement textbox = driver.findElement(By.id("myTextBox"));
textbox.clear();
textbox.sendKeys(
    "13456,Teena" + Keys.SHIFT + Keys.ENTER +
    "12378,Tesa"  + Keys.SHIFT + Keys.ENTER +
    "130987,Jhon"
);

⚠️ 关键说明:

  • Keys.ENTER 单独使用会触发表单提交或焦点跳转,不适用于多行输入
  • Keys.SHIFT + Keys.ENTER 是多数现代浏览器(Chrome、Edge、Firefox)中公认的“插入换行符”快捷键,等效于手动按 ⇧+↵;
  • 若目标元素为

? 扩展提示:

  • Keys 枚举还支持 TAB、ARROW_DOWN、SPACE、ESCAPE 等常用功能键,可用于模拟复杂用户交互;
  • 使用前务必确认目标元素已加载、可交互且未被遮挡(建议配合 WebDriverWait 显式等待);
  • 若输入后未显示换行,请检查 CSS 属性(如 white-space: nowrap)或 JavaScript 拦截逻辑——此时需结合 executeScript() 注入原生值并

    触发 input 事件。

掌握此技巧,即可高效完成批量结构化数据(如 CSV 行、日志片段、配置列表)的自动化录入任务。