使用 Selenium 获取两个标签之间的 HTML

Obtain HTML between two tags using Selenium

设置

我正在使用 Selenium 获取页面上的一组链接。

页面HTML结构为'flat';没有缩进,没有 children,等等,看起来像

 <h2>TAG1</h2>
 <a href...>...</a>
 'more links'
 <a href...>...</a>
 <h2>TAG2</h2>

问题

我要获取的链接位于(不是里面)两个h2标签之间。

如何告诉 selenium 获取 TAG1TAG2 之间的 HTML(或直接链接)?

这个 xpath 应该可以解决问题

//a[./preceding-sibling::h2[.='TAG1']][./following-sibling::h2[.='TAG2']]

xpath 读取为 select 所有 a 标签,其前面有 h2 和文本 TAG 1,h2 后面有文本 TAG2。

这个 css 选择器应该可以工作 h2 ~ a 示例:(在 python 中)

elements = driver.find_elements_by_css_selector('h2 ~ a')
links = [x.get_attribute('href') for x in elements]