如何在硒中的一个Web元素中返回相同级别节点的组合?

法比安·博斯勒(Fabian Bosler)

目前我对硒的知识是有限的,但是据我所知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,带有class的div和h3)处于同一层次结构上,并且自列表以来,其中有许多节点。有没有办法让硒将它们“包装”回来?在这种情况下,我可以确保获得正确的数据。我现在的操作方式是获取中间元素,然后在指定标签的同级元素之前和之后进行同级操作。但是我觉得那充其量不过是怪诞的。

多谢。

杰夫

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

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,等,则此代码将使组不匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R中的复杂列表中组合不同级别的多个元素?

Powershell在一个选择对象中获取不同级别的节点值

如何在JS中获得相同级别的元素值?

如何获得与另一个元素属性相同级别的元素的值

硒返回错误的元素,选择第一个同级元素,而不是查看元素本身

如何在REACT中从另一个同级或导入的组件更新同级组件的状态

如何在javascript中克隆元素并附加一个唯一的新子节点

如何使用jQuery定位嵌套在另一个元素的同级标签中的元素

如何使用Puppeteer选择下一个相同级别的div?

如何在React中附加一个新元素(新节点)?

如何从与主表相同级别的 sequelize 中的连接表返回值

如何将 json 对象添加到同级别的另一个 json 对象中?

如果使用BeautifulSoup的XML中的一个节点的元素树名称相同,那么如何定位值

无法使用javascript中的上一个元素同级增加最后一个元素

如何在与React中的prop相同级别的组件上发送State值?

如何在数组树中添加新密钥到相同级别?

如何在flutter中访问与当前小部件具有相同级别的小部件?

为什么我不能在对象内部的数组中展开,而该对象中的另一个对象处于相同级别

在一个查询中聚合来自两个不同级别的信息

如何在一个突变中创建嵌套节点?

如何在序言中从右到左返回大于一个谓词中整数的所有元素?

如何使用querySelector检索div的第一个子元素同级节点?

用硒在python中单击一个元素

在XPath中练习下一个同级节点的子节点属性

如何将59个元素组合成arraylist中的一个元素?

一个查询中的 SQL 不同级别的分组

如何在Selenium WebDriver中从一个类到另一个类调用Web元素

如何在第一个 observable 上组合多个 observables 并在方法中作为新的 observable 返回

如何将节点元素移动到其父元素中的第一个元素