我正在使用Python& Selenium废弃某个网页的内容。目前,我有以下问题:有多个具有相同名称的div类,但每个div类具有不同的内容。我只需要一个特定div级的信息。在下面的示例中,我需要第一个“show_result”类中的信息,因为链接文本中有“重要元素”:
<div class="show_result">
<a href="?submitaction=showMoreid=77" title="Go-here">
<span class="new">Important-Element</span></a>
Other text, links, etc within the class...
</div>
<div class="show_result">
<a href="?submitaction=showMoreid=78" title="Go-here">
<span class="new">Not-Important-Element</span></a>
Other text, links, etc within the class...
</div>
<div class="show_result">
<a href="?submitaction=showMoreid=79" title="Go-here">
<span class="new">Not-Important-Element</span></a>
Other text, links, etc within the class...
</div>
使用以下代码,我可以获得“重要元素”及其链接:
driver.find_element_by_partial_link_text('Important-Element')
。但是,我还需要同一个div-class“show-result”中的其他信息。如何在链接文本中引用包含Important-Element的整个div类? driver.find_elements_by_class_name('show_result')
不起作用,因为我不知道重要元素位于哪个div类中。
谢谢, 芬兰
编辑/更新:Ups,我使用xpath找到了解决方案:
driver.find_element_by_xpath("//div[contains(@class, 'show_result') and contains(., 'Important-Element')]")
答案 0 :(得分:0)
Ups,我通过xpath找到了解决方案:
driver.find_element_by_xpath("//div[contains(@class, 'show_result') and contains(., 'Important-Element')]")
答案 1 :(得分:0)
我知道您已找到答案,但我认为这是错误的,因为您还会选择其他节点,因为重要元素仍处于非重要元素中。
也许它适用于您的具体案例,因为那不是您之后的文字。但是这里有几个答案:
//div[@class='show_result' and starts-with(.,'Important-Element')]
//div[span[text()='Important-Element']]
//div[contains(span/text(),'Important-Element') and not(contains(span/text(),'Non'))]
有更多方法可以写这个......