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

如何在Python Selenium中定位b标签指定文本后的后续元素

解决方法

针对你需要提取<b>Att:</b>和<b>Ref:</b>之后文本的需求,有几种灵活的实现方式,无需依赖固定XPath:

方法1:使用XPath的following-sibling定位文本节点

直接通过XPath定位目标<b>标签后,获取其后续的文本节点内容,再清理多余空格:

# 获取Att:后的文本
att_text = driver.find_element("xpath", ".//b[contains(text(), 'Att:')]/following-sibling::text()[1]").get_attribute("textContent").strip()

# 获取Ref:后的文本
ref_text = driver.find_element("xpath", ".//b[contains(text(), 'Ref:')]/following-sibling::text()[1]").get_attribute("textContent").strip()

print(att_text)  # 输出11,847这类目标值

following-sibling::text()[1]用于精准定位<b>标签后的第一个文本节点,strip()负责去除前后的空格和换行符。

方法2:获取父元素文本后分割提取

找到包含<b>标签的父容器(比如<td>),获取整个容器的文本后,按标识文本分割提取:

# 处理Att的情况
att_parent = driver.find_element("xpath", ".//b[contains(text(), 'Att:')]/parent::*")
full_att_text = att_parent.text
att_value = full_att_text.split("Att:")[1].strip()

# 处理Ref的情况
ref_parent = driver.find_element("xpath", ".//b[contains(text(), 'Ref:')]/parent::*")
full_ref_text = ref_parent.text
ref_value = full_ref_text.split("Ref:")[1].strip()

这种方法适用于父元素内仅包含<b>标签和目标文本的场景,分割后取后半部分再清理空格即可。

方法3:通过JavaScript脚本提取文本节点

如果前两种方法遇到限制,可以用JS直接获取<b>标签的下一个文本节点:

# 获取Att后的文本
att_script = """
var bTag = document.querySelector("b:contains('Att:')");
return bTag.nextSibling.textContent.trim();
"""
att_text = driver.execute_script(att_script)

# 获取Ref后的文本
ref_script = """
var bTag = document.querySelector("b:contains('Ref:')");
return bTag.nextSibling.textContent.trim();
"""
ref_text = driver.execute_script(ref_script)

注意:如果页面存在多个匹配的<b>标签,需要调整querySelector的定位逻辑,比如结合父元素缩小范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:55:19