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

Python Selenium中不影响系统其他操作的复制粘贴替代方法问询

解决Selenium复制粘贴不影响系统剪贴板的方法

你的问题根源在于使用了系统级的Ctrl+C/V操作,占用了系统剪贴板,导致其他操作冲突。下面是几种完全绕开系统剪贴板的方案:

方法一:直接读写元素的value属性

这是最直接的方式,直接获取源元素的输入内容,再写入目标元素,全程不碰系统剪贴板:

from selenium.webdriver.common.by import By

# 获取email输入框的内容
email_content = driver.find_element(By.ID, "email").get_attribute('value')
# 定位password输入框
password_input = driver.find_element(By.ID, "password")
# 清空输入框(可选,根据需求调整)
password_input.clear()
# 将内容写入password输入框
password_input.send_keys(email_content)

方法二:用JavaScript直接操作DOM元素

通过执行JS代码直接读写元素的value,效率更高,适合复杂场景:

# 获取email输入框的内容
email_content = driver.execute_script("return document.getElementById('email').value;")
# 将内容设置到password输入框
driver.execute_script("document.getElementById('password').value = arguments[0];", email_content)

如果需要提取页面中选中的特定文本(而非输入框全部内容),可以用JS获取选中内容:

# 获取页面中选中的文本
selected_text = driver.execute_script("return window.getSelection().toString();")
# 将选中内容写入目标元素
driver.execute_script("document.getElementById('password').value = arguments[0];", selected_text)

方法三:模拟选中但用JS提取内容

如果必须模拟选中操作(比如需要触发元素的选中事件),可以先选中内容,再用JS提取,全程不依赖系统剪贴板:

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# 选中email输入框的全部内容
email_input = driver.find_element(By.ID, "email")
email_input.send_keys(Keys.CONTROL + "a")
# 通过JS提取选中的内容
selected_content = driver.execute_script("return arguments[0].value.substring(arguments[0].selectionStart, arguments[0].selectionEnd);", email_input)
# 写入password输入框
driver.find_element(By.ID, "password").send_keys(selected_content)

以上所有方法都只在浏览器内部处理数据,不会占用或修改系统剪贴板,完全不影响你同时进行其他复制粘贴操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:40:34