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

在Node.js的Selenium-Webdriver中如何用By.xpath()查找含特定子元素的<tr>?

搞定包含特定子元素的<tr>定位问题

嘿,我明白你的困扰了——你之前写的XPath没生效,是因为逻辑搞反啦!你原来的表达式在找自身带datetime2类的<tr>,但实际我们要找的是包含带datetime2类的<td>子元素的<tr>,换个思路就解决了。

直接可用的正确XPath

用这个表达式就能精准匹配你需要的所有目标<tr>,自动排除空的那些:

// Node.js环境下selenium-webdriver的写法
By.xpath("//tr[td[@class='datetime2']]")

拆解一下这个表达式

  • //tr:先选中页面里所有的<tr>元素
  • [td[@class='datetime2']]:这是过滤条件,意思是“只保留那些拥有一个class属性等于datetime2的<td>子元素的<tr>”
    • 空的<tr>因为没有符合条件的子元素,会被自动排除,完美符合你的需求

可选的精准限定(如果页面有多个表格)

如果你的页面里不止这一个表格,怕匹配到其他表格的元素,可以加上上下文限定,比如限定在目标表格的<tbody>里查找:

By.xpath("//table/tbody/tr[td[@class='datetime2']]")

这样就只会在指定表格的<tbody>范围内找符合条件的<tr>啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:46:01