You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Selenium获取第一层级子元素?

解决方案:仅获取tbody下第一层级的tr元素

要精准定位<tbody>的直接子元素<tr>,排除嵌套在其他<tr>内的子<tr>,你需要使用CSS直接子元素选择器(>),而非普通的后代选择器。

核心选择器

使用以下CSS选择器:

tbody > tr

这个选择器只会匹配直接作为<tbody>子元素的<tr>,不会选中任何嵌套在<tr>内部的后代<tr>,完全符合你的需求。

Python Selenium 代码示例

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
# 假设已加载目标页面
target_trs = driver.find_elements(By.CSS_SELECTOR, "tbody > tr")

# 遍历验证结果
for tr in target_trs:
    print(tr.get_attribute("outerHTML"))  # 只会输出你需要的那两个顶层tr

为什么之前的方法无效?

你提到的nth-child(##)这类选择器,若没有结合直接子选择器(>),默认会匹配所有后代中的对应位置元素,而非仅第一层级。比如tbody tr:nth-child(1)会选中<tbody>下所有后代里的第一个<tr>(包括嵌套的),而tbody > tr:nth-child(1)才只会选中<tbody>的第一个直接子<tr>。

内容的提问来源于stack exchange,提问作者Moshe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:05:16