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

Selenium如何获取HTML中未嵌套在标签内的文本节点内容

错误原因

Selenium 的 find_element_by_xpath 方法仅支持返回 DOM 元素对象,不能直接返回文本节点,因此你在 XPath 结尾加 /text() 来直接提取文本的写法不符合接口要求,才会抛出对应的类型错误。之前用 .text 仅拿到 £ 符号,大概率是你错误定位到了内部的货币符号 span 元素,而非外层的价格父元素。

可行解决方案

方案1:执行JavaScript直接提取文本节点(精度最高)

这种方法直接定位到目标文本节点,不会受前后文本内容变动的影响:

# 先定位到外层的价格p标签元素
price_ele = self.browser.find_element_by_css_selector('p.price')
# 执行JS提取p标签下第二个子节点(就是你要的价格文本节点)的内容
price_text = self.browser.execute_script('return arguments[0].childNodes[1].textContent.trim()', price_ele)

执行完成后 price_text 就是你要的 1,500.00。

方案2:全量获取文本后做字符串处理(写法更简单)

如果页面结构固定,也可以先拿到整个p标签的全部文本,再截取需要的部分:

# 拿到p标签完整文本,内容为 "£1,500.00 inc. vat"
full_price_text = self.browser.find_element_by_css_selector('p.price').text
# 去掉货币符号和后面的增值税说明,提取纯价格
price_text = full_price_text.lstrip('£').split(' inc. vat')[0].strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 22:39:03