Python Selenium如何获取无text/value属性的输入框文本值?
解决Angular输入框文本获取失败的问题
可行解决方案
1. 精准定位目标元素
确保定位的是目标输入框,可结合formcontrolname属性提升定位精度:
element = driver.find_element(By.CSS_SELECTOR, "input[formcontrolname='name']")
2. 等待元素值同步加载
Angular表单控件值更新可能存在延迟,用显式等待确保元素状态稳定:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, "input[formcontrolname='name']")) )
3. 直接读取Angular表单模型值
若DOM的value属性未同步Angular双向绑定的值,可通过JS脚本读取内部模型:
input_value = driver.execute_script(""" const element = arguments[0]; const ngControl = angular.element(element).controller('ngModel'); return ngControl.$modelValue; """, element)
4. 确保元素可交互
先激活输入框再尝试取值,避免元素处于非交互状态导致失败:
element.click() input_value = element.get_attribute('value')
内容的提问来源于stack exchange,提问作者Emon
相关产品推荐
相关产品推荐

