python - 我想用 selenium 从 textarea 复制动态生成的内容
问题描述
http://eemaata.com/font2unicode/Encoder/unicode2font.php5 这是一个我们可以将 unicode 文本转换为 Anu Script Manager 版本(用于打印目的)的网站。所以我要做的是 1. 打开网站 2. 将剪贴板文本粘贴到 unicode 文本字段中(在运行 selenium 脚本之前,我会将 Unicode 文本复制到剪贴板) 3. 单击 Anu7(下拉菜单),这样它将转换文本并显示在文本区域 4. 选择该文本区域中的所有文本并复制该内容
在生成 anu7 文本之前,一切都正常工作..但我无法复制该内容..我该怎么做才能将该内容放入我的剪贴板?
我在生成文本后尝试获取 posTextOut.text 但没有运气,因为生成的文本没有显示在 textarea 中(我不知道为什么)。我尝试发送键 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')
解决方案
您需要在发送密钥和单击转换按钮之间添加一些等待,但它应该可以工作
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)
推荐阅读
- python - 在二进制输出 Tensorflow 的情况下必须使用什么损失函数?
- javascript - 传单地图的引导 4 模态问题
- cuda - 使用哪个:零拷贝内存与固定内存
- jquery - .Change 事件不改变 td 中的文本
- vue.js - 带有ID的列表中的Vue Element绑定选择
- c++ - c++ std::bind 函数内
- angular - 如何在 Angular 和 Jasmine 中对退订进行单元测试?
- jquery - 在 touchmove 上禁用 jquery-chosen 以启用页面滚动
- android - 根据字符串长度计数计算ems值
- python - Pyodbc 运行保存的访问查询