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

Python Selenium找到标签但类不可见,获取svg下text文本为空问题求助

问题解决思路

1 修正代码逻辑错误

你当前代码中等待的元素类名是form-with-text,但从你给出的页面结构可见,text标签的实际类名为form-win-text,类名不匹配会直接导致等待逻辑失效,后续元素操作自然无法正常执行。

2 修正SVG元素文本获取方式

SVG属于XML命名空间下的特殊元素,Selenium默认的.text属性无法正常读取SVG内部text标签的文本内容,需要改用get_attribute('textContent')方法来提取内容。

3 优化元素定位逻辑

你当前使用的层级过长的相对XPath稳定性极差,页面结构出现微小变动就会定位失败,可以直接通过特征属性批量定位目标元素,无需逐层嵌套查找。


修正后参考代码

# 原有导入、driver初始化、等待对象配置保留即可
# 直接批量定位所有目标text元素
target_texts = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//div[contains(@class,'form-box flex-xs-no-grow')]//text[contains(@class,'form-win-text')]")))
for text_ele in target_texts:
    # 用textContent获取SVG内的文本内容
    print(text_ele.get_attribute('textContent'))

补充注意事项

  • 如果调整后还是无法获取内容,先检查目标元素是否在iframe内,如果是需要先切换到对应iframe再执行定位操作
  • 可以适当增加等待时长,确认内容是否是页面渲染延迟导致的未加载完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:00:03