是否有任何工具可用于智能地获取xpath

时间:2015-12-24 06:14:33

标签: javascript xpath

我创建了一个基本的JS函数,它会在点击任何HTML元素时返回xpath。但它给出了基本的xpath - 例如像这样 - //*[@id='main']/div[3]/div[1]/div[1]/ul[1]/li[2]/a[1].

现在我的问题是,是否有任何聪明的方法可以获得最好的xpath类似的后代,兄弟姐妹和所有。并不总是像上面那样从id和位置。我想用它来测试应用程序,以便省略手动编写xpath并保存额外的工作。

1 个答案:

答案 0 :(得分:1)

没有智能xpath。只有好的(而不是什么都没有!)

最重要的是:xpath不是唯一选择元素。

在XML中,给出的xpath更精确

//*[@id='main']/div[3]/div[1]/div[1]/ul[1]/li[2]/a[1]

如果我们做出一些假设,我们可以猜测[1]意味着唯一,所以我们得到:

//*[@id='main']/div[3]/div/div/ul/li[2]/a

这只是猜测(当然是假的)。

所以,你保留的是:

  • 标签的路径:div,div,div,ul,li,a
  • 一些参数:id
  • 某些指数:3,2

如果你知道只有一个< a>标签中包含id = main,

你可以这样做:

//*[@id='main']//a

结论:只有你知道你主要的好(稳定)结构,你才能自己创建智能xpath

如果没有,你可以尝试做一些像我一样的技巧,但在大多数情况下它是不可预测的,然后是不可靠的。

很难做到自动