我正在使用 Python 3.4.4 访问网站(https://readability-score.com/ https://readability-score.com/)有一个文本区域,当添加新值时会动态更新。
我正在尝试将字符串输入到该文本区域框中,但它对我不起作用。
这是我正在尝试的代码:
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 驱动程序找不到将密钥发送到的文本区域。我认为它能够清除它(因为当您进入页面时我确实可以看到文本被清除),但无法输入任何文本。有人对此有什么想法吗?我遵循了在线指南,但我觉得我已经尝试了列出的所有选项(http://selenium-python.readthedocs.org/ http://selenium-python.readthedocs.org/)。谢谢。
您可以明确等待 http://selenium-python.readthedocs.org/waits.html#explicit-waits直到出现文本区域。
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)