我正在尝试从这样的结构中获取文本:
...
<div class="a">
<div class="a">
<div class="a">
<div class="inner">
<a>
<div class="a">...</div>
<div class="a">></div>
<div class="important class">Some interisting text</div>
<div class="a">...</div>
</a>
<a>
<div class="a">
<button class="criterion A">...</button>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="a">
<div class="a">
<div class="a">
<div class="inner">
<a>
<div class="a">...</div>
<div class="a"/>
<div class="important class">Some interisting text</div>
<div class="a">...</div>
</a>
<a>
<div class="a">
<button class="criterion B">...</button>
</div>
</a>
</div>
</div>
</div>
</div>
...
我想要的是:
从div中通过class =“ important class”从div获得文本的路径,该路径与button
具有class="B"
属性的标准相匹配。
在使用硒时,我尝试了以下类似的操作来检索XPath列表:
list_xpath = driver.find_elements_by_xpath('.//div[@class="importante class" and .//button[@class="cirterion B"]]')
但是它返回一个空列表。
要检索文本,我稍后再做:
for path in list_xpath:
print(path.text)
给定位于另一个分支中的条件,获取这些文本的正确方法是什么?
答案 0 :(得分:4)
尝试此XPath:
//a[.//button[@class="cirterion B"]]/preceding-sibling::a//div[@class="importante class"]
答案 1 :(得分:1)
您可以使用以下XPath-1.0表达式获取text()
值Some interisting text
:
//div[a/div/@class='important class' and a/div/button/@class='criterion B']/a/div[@class='important class']/text()
在整个Python表达式中,将是:
list_xpath = driver.find_elements_by_xpath("//div[a/div/@class='important class' and a/div/button/@class='criterion B']/a/div[@class='important class']/text()")