XPath是一种在XML文档中查找信息的语言,也常用于HTML文档的节点定位。获取元素文本是XPath最常见的操作之一,通常使用text()
函数或string()
函数来实现。
原因:
解决方案:
# 示例:Python中使用lxml库
from lxml import etree
html = """
<div class="content">
<p>Hello <span>World</span></p>
</div>
"""
tree = etree.HTML(html)
# 正确获取文本的方式
text = tree.xpath('string(//div[@class="content"])') # 获取div及其所有子元素的文本
print(text) # 输出: Hello World
# 或者使用text()获取直接子文本
text = tree.xpath('//div[@class="content"]/p/text()')
print(text) # 输出: ['Hello ']
原因:
解决方案:
# 使用normalize-space()函数
text = tree.xpath('normalize-space(//div[@class="content"])')
print(text) # 输出: "Hello World" (去除多余空白)
原因:
解决方案:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("your_url")
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//div[@class="content"]'))
)
print(element.text)
原因:
解决方案:
# 使用string()或join列表
text_list = tree.xpath('//div[@class="content"]//text()')
text = ''.join(text_list).strip()
print(text)
通过正确使用XPath函数和注意常见陷阱,可以有效地获取和处理元素文本内容。
没有搜到相关的文章