📜  如何在 Selenium WebDriver 中获取元素的文本,而不包括子元素文本? (1)

📅  最后修改于: 2023-12-03 15:08:48.033000             🧑  作者: Mango

如何在 Selenium WebDriver 中获取元素的文本,而不包括子元素文本?

当我们需要从网页中抓取一段文本时,我们可以借助 Selenium WebDriver 来获取元素,但是有时候元素中可能包含子元素,而我们只想获取父元素的文本。在这种情况下,我们可以使用 Selenium 的 text 属性和 strip() 方法来获取父元素的文本。

# 导入需要的库和模块
from selenium import webdriver

# 声明一个 WebDriver 对象
driver = webdriver.Chrome()

# 进入目标网页
driver.get("http://example.com/")

# 定位目标元素
elem = driver.find_element_by_xpath("//div[@class='example']")

# 获取元素文本,但包括子元素文本
text_with_children = elem.text

# 获取元素文本,且不包括子元素文本
text_without_children = elem.text.strip()

# 打印结果
print(text_with_children)
print(text_without_children)

在上述代码中,我们首先导入所需的模块和库,然后声明了一个 WebDriver 对象并进入目标网页。接着,我们使用 XPath 表达式定位到目标元素,然后使用 text 属性获取元素的文本,但其中包括了子元素的文本。最后,我们使用 strip() 方法来剥除掉子元素的文本,只保留目标元素的文本。最终,我们打印出获取到的结果。

值得一提的是,我们也可以通过在 XPath 表达式中使用 text() 函数来直接获取元素自身的文本,避免包含子元素的文本。比如在上述代码中,我们可以将 XPath 表达式修改为 //div[@class='example']/text(),这样就只会返回目标元素自身的文本,不包括子元素的文本。