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

Selenium Python:定位含特定文本的li元素及提取目标内容

问题解决方法

1. 修正li节点的定位XPath

你原代码的XPath匹配失败,核心原因是li的直接文本包含引号和前后空格,而你写的匹配字符串缺少引号,导致无法命中目标节点。可以用两种方式修正:

  • 方式一:完整匹配文本中的引号与空格
el = driver.find_element(By.XPATH, "//li[contains(text(),'\" text with trailing spaces \"')]")
  • 方式二:用normalize-space处理文本,自动去除前后空格,简化匹配逻辑(注意保留文本内的引号)
el = driver.find_element(By.XPATH, "//li[normalize-space(text())='\"text with trailing spaces\"']")

如果li节点的文本存在换行或冗余空格,也可以基于节点整体文本的归一化结果匹配:

el = driver.find_element(By.XPATH, "//li[normalize-space(.)='\" text with trailing spaces \" Text to be captured Another text']")

不过这种方式依赖子节点文本内容,精准度不如前两种。

2. 提取目标内容

定位到li节点后,可按以下方式提取所需信息:

提取urlToBeCaptured

通过li节点找到子a标签,再获取其href属性:

url = el.find_element(By.TAG_NAME, 'a').get_attribute('href')

提取Text to be captured

你提到的代码是可行的,直接通过类名定位span节点并获取文本:

textToBeCaptured = el.find_element(By.CLASS_NAME, 'class1').text

如果遇到文本无法通过.text获取的情况(比如元素隐藏),可以改用以下方式:

textToBeCaptured = el.find_element(By.CLASS_NAME, 'class1').get_attribute('textContent').strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:33:15