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

如何使用Selenium Java将指定字符串通过Ctrl+V粘贴到文本框?

解决方案

要实现直接用已定义的String text = "test";通过Keys.CONTROL+"v"粘贴到文本框,核心是先将字符串写入系统剪贴板,再执行粘贴操作,以下是几种可行实现方式:

方式一:Java原生剪贴板操作(推荐)

// 导入必要包:
// import java.awt.datatransfer.StringSelection;
// import java.awt.Toolkit;
// import java.awt.datatransfer.Clipboard;

String text = "test";
// 将字符串写入系统剪贴板
StringSelection stringSelection = new StringSelection(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);

// 定位目标文本框并执行粘贴
WebElement textBox = driver.findElement(By.xpath("你的文本框XPath"));
textBox.click(); // 确保文本框处于激活状态
textBox.sendKeys(Keys.CONTROL + "v");

方式二:Robot类模拟粘贴操作

若sendKeys方法存在兼容性问题,可通过Robot类模拟键盘按键实现粘贴:

// 导入必要包:
// import java.awt.Robot;
// import java.awt.event.KeyEvent;
// import java.awt.datatransfer.StringSelection;
// import java.awt.Toolkit;
// import java.awt.datatransfer.Clipboard;

String text = "test";
// 先将字符串写入剪贴板
StringSelection stringSelection = new StringSelection(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);

WebElement textBox = driver.findElement(By.xpath("你的文本框XPath"));
textBox.click();

// 模拟Ctrl+V按键
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);

方式三:JavaScript注入(绕过剪贴板)

如果不想依赖系统剪贴板,可直接通过JavaScript修改文本框的value属性:

String text = "test";
WebElement textBox = driver.findElement(By.xpath("你的文本框XPath"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].value = arguments[1];", textBox, text);

这种方式无需模拟粘贴操作,直接设置文本框内容,适配大多数场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:54:57