使用Selenium WebDriver按文本查找元素

时间:2017-05-26 21:01:40

标签: python selenium xpath web-scraping

我有以下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')]")

但它说没有找到元素! 任何想法如何解决它

1 个答案:

答案 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']