javascript - 有没有什么工具可以智能获取xpath

标签 javascript xpath

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

现在我的问题是,是否有任何明智的方法可以像获取后代、 sibling 等那样获得最佳的 xpath。并不总是像上面那样来自 id 和position。我想用它来测试应用程序,这样就可以省去手动编写xpath并节省额外的工作。

最佳答案

没有智能 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

如果知道id=main的标签中只有一个标签,

你可以这样做:

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

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

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

自动完成这件事很难。

关于javascript - 有没有什么工具可以智能获取xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448174/

相关文章:

xml - 用于检索节点文本值的 Xpath

xpath - xpath注入(inject)攻击的实现

wordpress - 网页抓取 - XPath - 查找 div 中特定标签的所有元素

css - 解决浏览器兼容性问题的选项?

javascript - 使用主 gitignore 文件 gitignore 子文件夹

javascript - 如何在 Google 跟踪代码管理器中使用自定义 <img> 标签跟踪按钮点击

xpath - fn :sum error "cannot cast to xs:double"

javascript - 音频未在移动浏览器上加载(Plyr 播放器)

javascript - Backbone - 什么是更有效的 DOM 元素范围查找方法?

SQL 服务器 : How to seperate XML nodes in different rows