#python-3.x #selenium #clipboard #accent-sensitive
#python-3.x #селен #буфер обмена #чувствительный к акценту
Вопрос:
Я работаю с формой, которая не позволяет вводить акценты, но позволяет вставлять текст с акцентом.
Как я могу отправить текст в буфер обмена, а затем вставить текст, содержащий акцент, в форму?
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')
Комментарии:
1. Итак, вы хотите отправить_ключевые, выделить ctrl a, скопировать ctrl c, а затем вставить ctrl v?
2. Я хочу вставить текст для вставки с помощью selenium непосредственно в буфер обмена
3. Почему бы вам просто не отправить текст, который вы хотите ввести в текстовое поле через
send_keys
?4. поскольку текстовое поле не допускает акцентов, но оно допускает выделение текста при его вставке
5. У вас есть ответ ниже — но вы пробовали настраивать свой текст с помощью javascript? — использование буфера обмена потенциально усложняет ваше решение.
Ответ №1:
Вы можете попробовать это в python, чтобы скопировать нужный текст в буфер обмена, а затем вставить его. Он работает с python 3.8. Вы тоже можете попробовать. если у вас возникнут какие-либо проблемы, дайте мне знать.
import pyperclip
pyperclip.copy('Text to be copied to the clipboard.')
clipboard_text= pyperclip.paste()
print(clipboard_text)
Комментарии:
1. это не работает для selenium без головы, это работает только для selenium с графическим интерфейсом.