gpt4 book ai didi

python - 如何在 Selenium 中返回一个 WebElement 中相同级别节点的组合?

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:45 24 4
gpt4 key购买 nike

目前我对 selenium 的了解有点有限,但据我了解 driver.find_elements_by_xpath() 返回一个 webelement 列表。然后,我们可以迭代这些元素并做任何我们想做的事情,比如打印文本。那部分很容易。但现在假设在给定页面上我将寻找 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)位于同一层次结构级别,并且由于它是一个列表,所以其中有很多节点。有没有办法让 Selenium 将它们“打包”返回?在这种情况下,我可以确保获得正确的数据。我现在的做法是获取中间元素,然后使用指定标签在同级元素的前面和后面。但我觉得这充其量是古怪的。

非常感谢。

最佳答案

我不确定您的方法使用什么代码,但我会做这样的事情。

headings = driver.find_elements_by_css_selector("parent > h1"))
for i in range(len(headings)):
heading = driver.find_element_by_css_selector("parent > h1:nth-of-type(" + i + ")"))
identifier = driver.find_element_by_css_selector("parent > div.identifier:nth-of-type(" + i + ")"))
subheading = driver.find_element_by_css_selector("parent > h3:nth-of-type(" + i + ")"))
// do something with each element here

现在您可以引用每个元素。

注意:这假设每个元素始终存在。如果您缺少 h3 等,此代码将导致组不匹配。

关于python - 如何在 Selenium 中返回一个 WebElement 中相同级别节点的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com