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

如何在Python Selenium WebDriver中提取li内容并排除span文本?

提取li元素中不含子元素的文本内容

针对你的需求,这里提供三种可行的方法来获取仅包含“List content”的文本:

方法一:使用XPath定位直接文本节点

直接通过XPath选中li元素下的第一个文本节点,而非整个li元素:

from selenium.webdriver.common.by import By

# 定位li下的第一个直接文本节点
target_element = driver.find_element(By.XPATH, "//div[@id='div1']/ul/li/text()[1]")
# 获取文本并去除多余空格换行
result = target_element.get_attribute('textContent').strip()
print(result)  # 输出:List content

说明:text()[1]会匹配li元素下的第一个直接文本节点,strip()用于清理文本前后的空白字符。

方法二:通过JavaScript脚本提取

利用JavaScript直接操作DOM,获取li元素的第一个子文本节点内容:

result = driver.execute_script("""
    // 定位目标li元素
    const liElement = document.querySelector('div#div1 ul.lists li.listItem1');
    // 获取第一个子文本节点的内容并去除空白
    return liElement.firstChild.textContent.trim();
""")
print(result)  # 输出:List content

方法三:提取完整文本后拆分处理

如果前两种方法受限,可以先获取li的完整文本,再移除span的文本内容:

from selenium.webdriver.common.by import By

# 获取li的完整文本
li_full_text = driver.find_element(By.XPATH, "//div[@id='div1']/ul/li").text
# 获取span的文本
span_text = driver.find_element(By.XPATH, "//div[@id='div1']/ul/li/span").text
# 移除span文本并清理空白
result = li_full_text.replace(span_text, "").strip()
print(result)  # 输出:List content

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:58:36