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

Python Selenium如何获取已知id元素相邻前侧单元格的可见文本

Selenium获取已知id元素相邻前序单元格文本的方案

完全可以实现,核心思路是基于已定位的known_id元素做相对XPath查询,不需要提前知道整个表格的绝对路径,只要known_id元素和目标单元格的相对层级关系不变就可以稳定定位。


实现代码(适配新版Selenium)

首先导入依赖的By类:

from selenium.webdriver.common.by import By

然后执行查询逻辑:

# 1. 先定位已知id的输入框元素
known_element = driver.find_element(By.ID, "known_id")
# 2. 从当前元素出发做相对定位:先找最近的父级单元格,再找前序第一个同级单元格
target_cell = known_element.find_element(By.XPATH, './ancestor::div[@class="cell"][1]/preceding-sibling::div[@class="cell"][1]')
# 3. 获取可见文本,strip()用于清理前后的换行、空白字符
target_text = target_cell.text.strip()

如果使用旧版Selenium的原生定位方法,可以用如下写法:

known_element = driver.find_element_by_id("known_id")
target_cell = known_element.find_element_by_xpath('./parent::div/preceding-sibling::div[1]')
target_text = target_cell.text.strip()

逻辑说明

  • ./:表示查询起点是已经定位到的known_element,不是整个文档根节点
  • ancestor::div[@class="cell"][1]:找当前元素往上最近的、class为cell的父级div,也就是输入框所在的单元格
  • preceding-sibling::div[@class="cell"][1]:找该单元格的前序第一个、class为cell的同级节点,就是存储text-to-copy的目标单元格
  • .text是Selenium元素内置属性,直接返回元素的可见文本,会自动过滤隐藏内容

该方案不受表格整体结构动态变化的影响,只要单个行内的单元格相对结构不变就可以稳定拿到目标文本,完全符合你提出的伪代码逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:30:03