如何用Python Selenium获取未存储在HTML代码中的input文本内容
问题解决方法
核心原因
input元素的动态填充内容不会存储在HTML节点的文本字段中,而是存放在value属性里,因此直接读取元素的text属性无法拿到对应内容。
具体操作
你之前的元素定位逻辑是正确的,只需要修改取值的方法即可:
- 先点击「Show Answer」按钮,等待内容填充完成
- 对定位到的input元素调用
get_attribute("value")获取内容
完整代码示例
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("https://www.w3schools.com/html/exercise.asp?filename=exercise_html_tables6") # 点击显示答案按钮 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "showanswerbtn"))).click() # 提取input内容 input_elem = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".editablesection"))) target_text = input_elem.get_attribute("value") print(target_text) driver.quit()
如果你使用的是旧版Selenium,也可以直接沿用你原来的定位写法:
input = driver.find_element_by_css_selector(".editablesection") target_text = input.get_attribute("value")
内容的提问来源于stack exchange,提问作者Ismael Córdoba Rodríguez
相关产品推荐
相关产品推荐

