我有以下HTML页面,我在python下使用Selenium从页面中提取一些数据 HTML
<div class="secondary-content-col col-xs-12">
<div class="row">
<div class="col-xs-12">
<h2 class="h4"><span>Uthyres av:</span> Test</h2>
</div>
</div>
</div>
我想从代码中获取测试文字,我已尝试
driver.find_elements_by_xpath("//*[contains(., 'Uthyres')]")
但它说没有找到元素! 任何想法如何解决它
答案 0 :(得分:1)
你可以尝试这个xpath
:
//*[contains(text(), 'Uthyres')]/parent::*/text()
而不是contains(., ...)
使用contains(text(), ...)
,然后转到父节点并提取文本。注意测试这里是标记h2
的文本节点,而不是span
。
使用lxml
进行演示:
from lxml import etree
e = etree.fromstring("""<div class="secondary-content-col col-xs-12">
<div class="row">
<div class="col-xs-12">
<h2 class="h4"><span>Uthyres av:</span> Test</h2>
</div>
</div>
</div>""")
e.xpath('//*[contains(text(), "Uthyres")]/parent::*/text()')
# [' Test']