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

Selenium获取WebElement的id属性返回空值,求排查原因

解决Selenium获取id属性返回空字符串的问题

先看你提供的这段HTML代码:

<tr .."> 
  <td>
    <input type="checkbox" id="chkTES_0" class="shftchkbox" data-id="-997278">&nbsp;
    <span id="spTESCt_0" class="tesCount" data-key="3023005" title="This Test Execution Spec is not added yet">0</span>
  </td> 
  <td ...></td>
</tr>

你用element.find_elements(By.TAG_NAME,"td")[0].get_attribute("id")返回空字符串,问题出在你找错了元素!

仔细看HTML结构:第一个<td>标签本身根本没有id属性,带id的是它内部的<input>和<span>元素。你现在获取的是<td>的id,自然只能得到空字符串啦。

给你几个针对性的解决办法:

  • 如果你要获取<input>的id:
    先定位到第一个<td>,再在它内部找到<input>元素,然后获取id:

    element.find_elements(By.TAG_NAME,"td")[0].find_element(By.TAG_NAME,"input").get_attribute("id")
    

    或者用更精准的CSS选择器直接定位,效率更高:

    element.find_element(By.CSS_SELECTOR, "td input.shftchkbox").get_attribute("id")
    
  • 如果你要获取<span>的id:
    同样的思路,定位到<span>元素再取id:

    element.find_elements(By.TAG_NAME,"td")[0].find_element(By.TAG_NAME,"span").get_attribute("id")
    

    或者用CSS选择器简化:

    element.find_element(By.CSS_SELECTOR, "td span.tesCount").get_attribute("id")
    

下次定位元素的时候,一定要看清楚目标属性属于哪个标签哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:45:05