Python selenium将密钥发送到textarea

Python selenium将密钥发送到textarea,python,selenium,Python,Selenium,我正在使用Python3.4.4访问一个网站(),该网站有一个textarea,在添加新值时动态更新 我试图在文本框中输入一个字符串,但它对我不起作用 以下是我正在尝试的代码: driver = webdriver.Firefox() driver.wait = WebDriverWait(driver, 2) URL = "https://readability-score.com/" text = "Hello hello hello, this is a test" driver.ge

我正在使用Python3.4.4访问一个网站(),该网站有一个textarea,在添加新值时动态更新

我试图在文本框中输入一个字符串,但它对我不起作用

以下是我正在尝试的代码:

driver = webdriver.Firefox()
driver.wait = WebDriverWait(driver, 2)
URL = "https://readability-score.com/"

text = "Hello hello hello, this is a test"

driver.get(URL)
time.sleep(2)
driver.find_element_by_id("text_to_score").clear()
driver.find_element_by_id("text_to_score").send_keys(text)
#driver.find_element_by_xpath("/html/body/div[1]/div[6]/div/div[1]/form/fieldset/textarea").clear()
#driver.find_element_by_xpath("/html/body/div[1]/div[6]/div/div[1]/form/fieldset/textarea").send_keys(text)
问题是selenium驱动程序找不到发送密钥的文本区域。我认为它可以清除它(因为我可以在你进入页面时看到文本被清除),但不能输入任何文本。有人知道这件事吗?我遵循了在线指南,但我觉得我已经尝试了列出的所有选项()。谢谢

直到文本区域出现

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


...


url = "https://readability-score.com/"
text = "Hello hello hello, this is a test"

driver.get(url)
WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.ID, "text_to_score"))
)  # Wait until the `text_to_score` element appear (up to 5 seconds)
driver.find_element_by_id("text_to_score").clear()
driver.find_element_by_id('text_to_score').send_keys(text)
“send_keys”函数只输出您输入的字符串,而不“发送”键,这似乎是违反直觉的。提交textarea的正确方法是使用一个简单的

driver.find_element_by_id("text_to_score").submit()


错在哪里?哦,是的,说得好。我会编辑这个,但错误是selenium驱动程序无法将文本发送到文本区域。嗯,在send_keys语句之后放置一些延迟,以便您可以实际查看您的文本是否正在进入文本区域?对我来说仍然没有。即使使用DelayClear语句也会清除默认文本吗?如果是,请尝试删除该语句并仅使用send_keys()语句问题不在于驱动程序找不到元素(因为我可以看到它清除了默认文本),而在于它无法输入text@user1342086真奇怪。它非常适合我(无论是Firefox还是Chrome)。顺便问一下,您使用的是哪个版本的selenium软件包?我用的是2.53.1。是的,你可能是对的。我对上面的示例文本撒了谎,实际上我正在使用open和.read()方法导入文本文件。所以这是一个正确的解决方案(我没有尝试,但看起来不错)。你能解释一下我们如何按enter键发送文本吗?@hamed_baziyad,请看[这个问题](请看这个)。如果这不能帮助你解决我们的问题,请用你正在处理的url(或html)单独发布一个问题(不是评论)。
textarea = driver.find_element_by_id("text_to_score")
textarea.submit()