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

如何通过setValue或Recordation No使用Selenium定位并点击表格行

问题与解决方案

用户面临的情况:表格行的顺序会动态变化,原先使用的基于索引的XPath(如//*[@id="resulttable"]/tbody/tr[1])无法稳定定位目标行,需要根据<tr>元素onclick属性中的setValue参数,或者表格内显示的“Recordation No”来定位并点击对应行。


方案一:通过setValue值定位目标行

直接匹配onclick属性中包含指定setValue参数的<tr>元素,不受行顺序变化影响:

XPath表达式

//table[@id='resulttable']/tbody/tr[contains(@onclick, "setValue('115751')")]

Selenium代码示例

from selenium.webdriver.common.by import By

# 目标setValue值
target_setvalue = '115751'
# 构造动态XPath
xpath = f"//table[@id='resulttable']/tbody/tr[contains(@onclick, \"setValue('{target_setvalue}')\")]"
# 定位并点击
mychoice = driver.find_element(By.XPATH, xpath)
mychoice.click()

方案二:通过“Recordation No”定位目标行

如果需要根据页面显示的“Recordation No”数值(如3301051)定位,可先找到对应数值的单元格,再定位其父级行元素:

XPath表达式

//table[@id='resulttable']/tbody/tr/td[text()[normalize-space()='3301051']]/parent::tr

normalize-space()用于忽略文本中的换行、空格,避免因单元格内的格式问题导致定位失败

Selenium代码示例

from selenium.webdriver.common.by import By

# 目标Recordation No
target_record_no = '3301051'
# 构造动态XPath
xpath = f"//table[@id='resulttable']/tbody/tr/td[text()[normalize-space()='{target_record_no}']]/parent::tr"
# 定位并点击
mychoice = driver.find_element(By.XPATH, xpath)
mychoice.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:18:09