首页 > 解决方案 > 如何从 DOM 获取没有标签的元素文本

问题描述

我在用着

self.driver.find_element("//table//tr//td//b[contains(.,'Description')]//following-sibling::text()[1]").text

也试过

self.driver.find_element("//table//tr//td//b[contains(.,'Description')]//following-sibling::text()[1]").get_attribute("innerHTML")

但没有任何效果。

标签: pythonseleniumselenium-webdriver

解决方案


text()xoath返回文本节点中,但是 Selenium 不支持它。文本是<td>标签的一部分,你可以使用孩子<input>来定位它

self.driver.find_element_by_xpath('//input[@name="libdet_edit"]/..').text

如果您不想要,"description"您可以找到<b>标签并删除其文本

td = self.driver.find_element_by_xpath('//input[@name="libdet_edit"]/..')
all_text = td.text
b_text = td.find_element_by_xpath(".//b").text
text = all_text.replace(b_text, '')

推荐阅读