【发布时间】:2016-10-02 15:58:08
【问题描述】:
此时我对硒的了解有点有限,但据我了解 driver.find_elements_by_xpath() 返回一个 webelements 列表。然后可以遍历元素并做任何想做的事情,比如打印文本。 那部分很容易。 但现在假设在给定页面上我会寻找 3 个节点的每个组合:
<parent>
<h1>text</h1>
<div class="identifier">more stuff</div>
<h3>text2</h3>
<h1>other text</h1>
<div class="identifier">other more stuff</div>
<h3>other text2</h3>
...
</parent>
这 3 个节点(此处为 h1、带类的 div 和 h3)位于同一层次结构级别,并且其中有很多节点,因为它是一个列表。有没有办法让硒将它们“打包”返回?在这种情况下,我可以确保我得到了正确的数据。我现在这样做的方式是获取中间元素,然后使用指定的标签在兄弟姐妹之前和之后。但我觉得这充其量是古怪的。
非常感谢。
【问题讨论】:
-
最好的方法可能是将父元素引用到这些兄弟元素。你能发布更多周围的 HTML 吗?您将无法使用 Selenium 从单个查找中直接返回这些打包的内容,但您可以编写一个函数,该函数接受父元素并将这三个元素的集合作为“包”返回。
-
谢谢杰夫。我也那么认为。不过有一个问题。唯一的父母包含一堆我的 3 个节点组合。我更新了描述,这是否充分回答了您的问题?
标签: python html selenium xpath