从Selenium的另一个元素上方的链接获取href



我正在使用selenium,我需要从多个标签上方的链接获取href

但我唯一可以使用并且我确信的信息是文本";测试文本"来自h3标签!以下是示例:

<a href="/link/post" class="link" >
<div class="inner">
<div class="header flex">
<h3 class="mb-0">
Test text!
</h3>
</div>
</div>
</a>

尝试使用以下xpath来定位所需元素:

//a[@href and .//h3[contains(text(),'Test text!')]]

因此,要获得href值,必须使用

from selenium.webdriver.common.by import By
href = driver.find_element(By.XPATH, '//a[@href and .//h3[contains(text(),'Test text!')]]')

Prophet答案中的方法的另一种选择是使用类似XPATH的

//h3[contains(text(),"Test text!")]]//ancestor::a

即首先搜索CCD_ 5标签,然后搜索上面的CCD_。

Prophet的答案使用相反的方法,首先找到所有a标签,然后只保留下面带有正确h3标签的标签。

最新更新