使用Selenium无法获取文本框内容:页面显示与HTML代码不一致求助
解决Selenium获取动态文本框内容的问题
问题核心:这类工具网站的文本框内容是通过JavaScript动态注入到元素的
value属性中,而非直接渲染到元素的文本节点(text/innerHTML),所以直接用element.text或element.get_attribute("innerHTML")会获取到和页面显示不符的内容。正确获取方式:
- 定位目标文本框元素(建议用显式等待确保元素加载完成)
- 使用
get_attribute("value")方法获取内容,这是表单元素(如textarea、input)存储用户/动态输入内容的标准属性
Python代码示例:
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://sitedozor.ru/get-source-code-of-webpage/") # 输入目标网址并提交 input_url = driver.find_element(By.CSS_SELECTOR, "input[name='url']") input_url.send_keys("https://plus.yandex.ru/dacha") driver.find_element(By.CSS_SELECTOR, "button[type='submit']").click() # 等待源码文本框加载完成 source_textarea = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "source-code")) ) # 获取文本框内的真实内容 source_content = source_textarea.get_attribute("value") print(source_content) driver.quit()
- 补充说明:如果
value属性无法获取到内容,可以尝试get_attribute("textContent")或get_attribute("innerText"),但针对表单元素,value属性是最可靠的选择。
内容的提问来源于stack exchange,提问作者VLAD
相关产品推荐
相关产品推荐

