Я хочу скопировать динамически сгенерированный контент из текстовой области с помощью селена

http://eemaata.com/font2unicode/Encoder/unicode2font.php5 это веб-сайт, где мы можем преобразовать текст Unicode в версию Anu Script Manager (которая используется для печати). Итак, что я пытаюсь сделать, это 1. открыть веб-сайт 2. вставить текст из буфера обмена в текстовое поле Unicode (у меня будет текст Unicode, скопированный в буфер обмена перед запуском сценария селена) 3. нажмите на Anu7 (раскрывающийся список), чтобы он конвертировал текст и отображается в текстовом поле 4. выберите весь текст в этом текстовом поле и скопируйте этот контент

все отлично работает до создания текста anu7 ... но я не мог скопировать этот контент ... что я могу сделать, чтобы поместить этот контент в буфер обмена?

Я попытался получить posTextOut.text после создания текста, но не повезло, потому что сгенерированный текст не отображается в текстовой области (я не знаю, почему). Пробовал отправлять клавиши ctrl+a, ctrl+c, но они тоже не работают. любая помощь будет оценена .. спасибо

=========================

мой код выглядит так

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

driver_path = 'C:\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('http://kolichala.com/font2unicode/Encoder/unicode2font.php')
driver.implicitly_wait(20)
driver.maximize_window()

# Variables
unicode_input = driver.find_element_by_id('posTextIn')
anu7_output = driver.find_element_by_id('posTextOut')
anu7_selector = driver.find_element_by_xpath('//*[@id="aaa2"]/option[3]')

# pasting unicode text
unicode_input.send_keys(Keys.CONTROL + 'v')
# selecting anu7 version
anu7_selector.click()
driver.implicitly_wait(5)
# trying to copy the content
anu7_output.send_keys(Keys.CONTROL + 'a')
anu7_output.send_keys(Keys.CONTROL + 'c')

person kiku_here    schedule 27.05.2020    source источник
comment
Вы, вероятно, должны получить значение, а не текст   -  person Bendik Knapstad    schedule 27.05.2020
comment
как я могу получить значение в селене? anu7_output.value выдает ошибку   -  person kiku_here    schedule 27.05.2020
comment
да. Мне нужно получить значение, а не текст элемента, который я пытался получить с помощью anu7_output.get_attribute('value'), ничего не показывая. пожалуйста, помогите мне..   -  person kiku_here    schedule 27.05.2020
comment
@BendikKnapstad с javascript работает, чтобы получить значение. но я хочу это с селеном (питоном)   -  person kiku_here    schedule 27.05.2020
comment
Я заставляю это работать в моем конце: inn=bot.driver.find_element_by_id('posTextIn') out=bot.driver.find_element_by_id('posTextOut') inn.send_keys(hello) bot.driver.find_element_by_id(transform).click( ) out.get_attribute(value) '%hello' вы работаете без головы? дважды проверьте, что вы действительно вставляете материал в поле ввода   -  person Bendik Knapstad    schedule 27.05.2020
comment
Кажется, вы не нажимаете кнопку преобразования: 'driver.find_element_by_id(transform).click()'   -  person Bendik Knapstad    schedule 27.05.2020
comment
Вставка @BendikKnapstad работает нормально, и преобразование текста также работает. Но проблема в том, что я не могу получить преобразованные данные. это значение posTextOut, на самом деле нам не нужно нажимать кнопку преобразования, поскольку мы выбираем anu7 из раскрывающегося списка, он автоматически преобразует данный текст   -  person kiku_here    schedule 27.05.2020
comment
@BendikKnapstad что ты имеешь в виду под безголовым?   -  person kiku_here    schedule 27.05.2020
comment
я запускаю ваш точный код, и он работает с использованием anu7_output.get_attribute("value")   -  person Bendik Knapstad    schedule 27.05.2020
comment
и я заметил, что он не будет генерировать значения, если вы попытаетесь выбрать anu7, если этот параметр уже выбран.   -  person Bendik Knapstad    schedule 27.05.2020
comment
@BendikKnapstad Странно, но почему у меня это не работает? ---- Я сохраняю значение в переменной и печатаю его ... но ничего не печатается Я пробовал с вашим кодом. дал мне эту ошибку NameError: name 'bot' is not defined ------- и да, он не будет генерировать новый текст, если мы снова выберем anu7, если он уже выбран. затем нам нужно нажать на кнопку Transform   -  person kiku_here    schedule 27.05.2020
comment
извините, часть бота - это просто мой wapper для селена, удалите эту часть   -  person Bendik Knapstad    schedule 27.05.2020
comment
@BendikKnapstad Мой новый код выглядит так driver = webdriver.Chrome(executable_path=driver_path) driver.get('http://kolichala.com/font2unicode/Encoder/unicode2font.php') unicode_input = driver.find_element_by_id('posTextIn') anu7_output = driver.find_element_by_id('posTextOut') anu7_selector = driver.find_element_by_xpath('//*[@id="aaa2"]/option[3]') unicode_input.send_keys('Hello') driver.find_element_by_id("transform").click() print('printing output') value = anu7_output.get_attribute('value') print(value) В консоли ничего не печатается. я что-то пропустил?   -  person kiku_here    schedule 27.05.2020
comment
мне нужно было добавить некоторые ожидания между отправкой ключей и нажатием кнопки преобразования, но тогда это сработало   -  person Bendik Knapstad    schedule 27.05.2020
comment
я только что добавил time.sleep(0.5)   -  person Bendik Knapstad    schedule 27.05.2020
comment
вы получаете вывод в печать?   -  person kiku_here    schedule 27.05.2020
comment
@BendikKnapstad Я имею в виду, что у меня все работает, кроме части print (outputText) ... никаких ошибок не отображается. просто ничего не делает   -  person kiku_here    schedule 27.05.2020
comment
Я получаю вывод да: печать %Hello   -  person Bendik Knapstad    schedule 27.05.2020
comment
@BendikKnapstad \n ДА... Я думаю, time.sleep творит чудеса. или какой-то из моих закомментированных кодов все испортил... Теперь я заработал, добавив time.sleep(0.5) в новый файл python.. БОЛЬШОЕ СПАСИБО ЗА ВАШЕ ЦЕННОЕ ВРЕМЯ, БРАТ. \n Теперь я хочу, чтобы этот текст был в моем буфере обмена. как я могу сделать это с помощью python? (и не могли бы вы опубликовать свой ответ выше в разделе «ответить на этот вопрос»? чтобы я мог отметить его как лучший ответ?)   -  person kiku_here    schedule 27.05.2020
comment
посмотри на этот. это должно помочь вам с буфером обмена stackoverflow.com/questions/101128/   -  person Bendik Knapstad    schedule 27.05.2020


Ответы (1)


вам нужно добавить некоторые ожидания между отправкой ключей и нажатием кнопки преобразования, но тогда это должно работать

unicode_input = bot.driver.find_element_by_id('posTextIn')
anu7_output = bot.driver.find_element_by_id('posTextOut')
anu7_selector = bot.driver.find_element_by_xpath('//*[@id="aaa2"]/option[3]')
unicode_input.send_keys('Hello')
time.sleep(0.5)
bot.driver.find_element_by_id("transform").click()
print('printing output')
value = anu7_output.get_attribute('value')
print(value)
person Bendik Knapstad    schedule 27.05.2020