Отправка текста в буфер обмена в selenium

#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 с графическим интерфейсом.