在 selenium 中将文本发送到剪贴板
Posted
技术标签:
【中文标题】在 selenium 中将文本发送到剪贴板【英文标题】:Send text to clipboard in selenium 【发布时间】:2021-01-19 05:34:18 【问题描述】:我正在使用一个不允许输入重音符号的表单,但它允许粘贴带有重音符号的文本。
如何将文本发送到剪贴板,然后将包含重音的文本粘贴到表单中?
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
options = Options()
options.headless = True
driver = webdriver.Chrome('chromedriver.exe',options=options)
driver.get('https://www.website.com')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, openform))).click()
send accent text to clipboard
driver.find_element(By.XPATH, formfield).send_keys(Keys.CONTROL, 'v')
【问题讨论】:
所以你要send_keys,高亮ctrl a,复制ctrl c然后粘贴ctrl v? 我想将要使用 selenium 直接粘贴的文本插入剪贴板 你为什么不把你想输入的文字通过send_keys
发送到文本框?
因为文本框不允许重音符号,但粘贴时允许重音文本
您在下面得到了答案 - 但您是否尝试过通过 javascript 设置文本? - 使用剪贴板可能会使您的解决方案过于复杂。
【参考方案1】:
您可以尝试在 python 中将所需的文本复制到剪贴板,然后粘贴。它正在使用 python 3.8。你也可以试试。如果您遇到任何问题,请告诉我。
import pyperclip
pyperclip.copy('Text to be copied to the clipboard.')
clipboard_text= pyperclip.paste()
print(clipboard_text)
【讨论】:
它不适用于 selenium 无头,它仅适用于带有 GUI 的 selenium。以上是关于在 selenium 中将文本发送到剪贴板的主要内容,如果未能解决你的问题,请参考以下文章
Selenium selenium.common.exceptions.NoSuchElementException 错误将文本发送到 iframe 中的元素