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

使用XPath选取第n个元素内的第n个节点:如何选中第二行的第二个input?

问题分析

你原来的写法失效有两个原因:

  1. 语法错误:两个定位表达式之间缺少路径运算符,XPath 不支持直接拼接两个括号表达式
  2. 逻辑错误:不加限定的//input会从文档根节点开始全局搜索input,不会限定在你选中的第二个row节点范围内

正确写法

根据你的实际需求选择对应写法即可:

场景1:取第二个class=row的div下所有后代input的第二个(匹配你的示例需求,完全不关心中间节点结构)

((//div[@class='row'])[2]//input)[2]

注意外层括号不能省略:如果直接写(//div[@class='row'])[2]//input[2],会匹配第二个row的后代中「所有是自身父节点下第二个子元素的input」,和需求不符。

场景2:取第二个class=row的div的第二个直接子节点下的任意层级input(适配你提到的whatever是未知嵌套层级的场景)

(//div[@class='row'])[2]/*[2]//input

这里的*[2]会匹配第二个row的第二个直接子节点,不管节点名称是什么,后续的//input会搜索该节点下任意层级的input元素。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:00:04