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

Selenium技术问题:无法定位元素获取页面'DISSMISSED'文本

解决Selenium获取"DISSMISSED"文本的问题

咱们先拆解下你现有代码里的问题:

  • 第一个XPath语法错误,正确的属性选择写法应该是//span[@class='icon-check'],但就算改对了,这个<span>标签本身是空的(内部没有文本内容),所以.text肯定拿不到有效信息。
  • 第二个XPath用了div标签,但实际HTML结构里是<p>标签;而且就算定位到<p>,.text会返回整个段落的完整文本,也就是Case Status: DISMISSED,不是你要的单独的DISSMISSED。

给你几个可行的解决方案:

方案一:字符串提取(简单直接)

先定位包含目标文本的<p>标签,拿到完整文本后再通过字符串处理提取目标内容:

# 定位到包含Case Status的p标签
case_status_p = driver.find_element_by_xpath("//p[strong[text()='Case Status: ']]")
# 获取完整文本并过滤出目标内容
full_text = case_status_p.text
dismissed_text = full_text.replace("Case Status: ", "").strip()

方案二:通过XPath定位文本节点(更精准)

因为DISSMISSED是<p>标签下的独立文本节点(和<strong>、<span>同级),可以用JavaScript直接提取这个文本节点的内容:

dismissed_text = driver.execute_script("""
    return document.evaluate(
        "//p[strong[text()='Case Status: ']]/text()[normalize-space()]",
        document,
        null,
        XPathResult.STRING_TYPE,
        null
    ).stringValue.trim();
""")

方案三:利用父元素的textContent属性

直接获取<p>标签的textContent属性,再过滤掉不需要的前缀内容:

case_status_p = driver.find_element_by_xpath("//p[strong[text()='Case Status: ']]")
dismissed_text = case_status_p.get_attribute('textContent').replace("Case Status: ", "").strip()

这几个方法都能帮你拿到想要的DISSMISSED文本,你可以根据自己的场景选择最合适的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:48:01