假设我有以下 HTML 代码
<div class="12">
<div class="something"></div>
</div>
<div class="12">
<div class="34">
<span>TODAY</span>
</div>
</div>
<div class="12">
<div class="something"></div>
</div>
<div class="12">
<div class="something"></div>
</div>
现在,如果我使用 driver.find_elements_by_class_name("something")
,那么我将获得 HTML 代码中存在的所有类。但我只想在 HTML 中的特定单词(“今天”)之后上课。如何排除出现在特定单词之前的类。下一个 div 和类可以在任何级别。
最佳答案
您可以使用 XPath 搜索,如下所示:
driver.find_elements_by_xpath('//*/text()[.="some specific word"]/following-sibling::div[@class="something"]')
请注意,如果您的真实 HTML 与提供的简化 HTML 不同,您可能需要进行一些修改
更新
如果需要,将 following-sibling
替换为 following
div
节点不是兄弟节点:
driver.find_elements_by_xpath('//*/text()[.="some specific word"]/following::div[@class="something"]')
关于python - 使用selenium python仅在html中的特定文本之后查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50658428/