如何仅在python selenium中获取第一层子元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何仅在python selenium中获取第一层子元素相关的知识,希望对你有一定的参考价值。
如何在selenium python中获取仅第一层子元素的列表?
我想要类似于这里描述的东西:Selenium Python get all children elements
但是,我只想要第一层子元素。我附上了一张图片来解释。
如果我按照其他条目中描述的那样做,我得到所有sub和sub sub .......元素。我只想要第一层像图中所示的4个div元素而不是8个子子元素。
答案
是的,您需要指定一个直接的父子关系,可以通过单个/
在XPath中完成,也可以通过>
在CSS选择器中完成:
driver.find_elements_by_xpath("//section[@id = 'irq']/div/div[@eid]")
driver.find_elements_by_css_selector("section#irq > div > div[eid]")
如果我从截图中得到它们,请重新检查irq
和eid
(它有点模糊)。
另一答案
这看起来像你在寻找:
>>> elements = driver.find_elements_by_xpath('//div[@id="first"]/div')
>>> [i.get_attribute('id') for i in elements]
['second-1', 'second-2', 'second-3']
示例html:
<html>
<body>
<div id="first">
<div id="second-1"></div>
<div id="second-2">
<div id="third-1"></div>
</div>
<div id="second-3"></div>
</div>
</body>
</html>
以上是关于如何仅在python selenium中获取第一层子元素的主要内容,如果未能解决你的问题,请参考以下文章
Python 3.4 cx_freeze [WinError 5] 使用 Selenium - 仅在其他机器上