【问题标题】:How to find element xpath if they have no any attribute values?如果元素 xpath 没有任何属性值,如何找到它们?
【发布时间】:2018-08-01 05:53:37
【问题描述】:

举个例子

<tr><th>sample1</th><th>sample2</th></tr><tr<td>data1</td><td>data2</td></tr>

在上表中,我们没有任何属性值。但他们只有 TagName。从中我们如何找到所有这些的唯一 xpath。我尝试使用 xpath 之类的

//tr[not(@class) and not (@id)]

但是通过使用它,他们可以获取所有 tr .so 从中我们可以找到唯一的 xpath。请任何人都可以通过一些演示立即知道答案更新...

【问题讨论】:

  • 欢迎来到 SO。为什么这个问题被标记为 java ?
  • 如果你想要没有属性的节点,试试//tr[not(@*)]

标签: xpath


【解决方案1】:

属性值很方便,但不是在 XPath 中选择数据所必需的。

例如,对于您的 XML,为便于阅读而格式化并固定为格式良好,

<table>
  <tr>
    <th>sample1</th>
    <th>sample2</th>
  </tr>
  <tr>
    <td>data1</td>
    <td>data2</td>
  </tr>
</table>

以下每个 XPath 表达式,

  • 通过职位: /table/tr[2]/td[2]
  • 通过内容: //td[.='data2']
  • 通过邻接: //td[.='data1']/following-sibling::td[1]
  • 通过标题: //tr[2]/td[count(../../tr/th[.='sample2']/preceding-sibling::th)+1]

会选择

    <td>data2</td>

不依赖属性值。

另请参阅

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 2012-08-28
    • 2016-05-12
    • 2013-04-21
    • 1970-01-01
    相关资源
    最近更新 更多