You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:45:48