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

如何在Selenium中用XPath获取无独立节点/属性的文本

解决方法
  • 由于不能使用text()方法,你可以通过先定位节点再做文本处理的方式提取目标内容:
    1. 先获取<p>节点的完整文本:
      p_element = driver.find_element(By.XPATH, "//p[@class='mean' and @lang='ko']")
      full_text = p_element.text
      
    2. 提取两个<span>标签内的文本并从完整文本中剔除:
      • 获取两个span的文本内容:
        span1_text = driver.find_element(By.XPATH, "//p[@class='mean' and @lang='ko']/span[@class='word_class ']").text
        span2_text = driver.find_element(By.XPATH, "//p[@class='mean' and @lang='ko']/span[@class='mark']").text
        
      • 清理得到目标文本:
        target_text = full_text.replace(span1_text, "").replace(span2_text, "").strip()
        
  • 另一种方案:利用XPath的string()函数获取节点完整字符串后处理:
    full_string = driver.execute_script("return document.evaluate('string(//p[@class=\"mean\" and @lang=\"ko\"]) ', document, null, XPathResult.STRING_TYPE, null).stringValue;")
    target_text = full_string.replace(span1_text, "").replace(span2_text, "").strip()
    

注:因为无法直接通过XPath筛选独立文本节点,只能先获取完整文本再做字符串剔除,这样就能精准提取出不属于任何子span的目标内容。

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

相关产品推荐
方舟 Agent Plan

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

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