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

Selenium中get_attribute('value')未返回None问题咨询

问题解答

这是浏览器DOM的默认行为导致的,和Selenium无关:

  • 对于<input>这类表单元素,即使HTML源码里没有写value属性,浏览器在渲染DOM时也会自动为该元素添加value属性,并设置默认值为空字符串。所以你用get_attribute('value')拿到的是DOM层面的属性值,自然是空串而非None。

  • 如果你要严格区分「HTML中完全没有value属性」和「value属性存在但值为空」这两种情况,不能直接用get_attribute,得调用浏览器原生的DOM方法来判断,比如用execute_script执行hasAttribute:

    new_phone2 = self.driver.find_element(By.NAME, "newPhone2")
    # 判断HTML中是否存在value属性
    has_value_attr = new_phone2.execute_script("return this.hasAttribute('value');")
    if not has_value_attr:
        # HTML里没有value属性的逻辑
        print("元素无value属性")
    elif new_phone2.get_attribute('value') == '':
        # HTML里有value属性但值为空的逻辑
        print("value属性为空串")
    
  • 另外你提到「空字符串判断也无效」,大概率是输入框里有不可见的空白字符(比如空格、换行),可以先做去除空白的处理再判断:

    phone_val = new_phone2.get_attribute('value').strip()
    if not phone_val:
        # 输入框内容为空(包括空串、全空格等情况)
        pass
    

内容的提问来源于stack exchange,提问作者charm2023

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:10:58