【问题标题】:XPath: Will setting explicit attribute id improve test performance (speed)XPath:设置显式属性 id 会提高测试性能(速度)
【发布时间】:2013-10-02 06:31:07
【问题描述】:

我一直在做一些单元测试,并且作为测试 XML 脚本的一部分,使用它们的 Xpath 定位 HTML 元素。

其他测试人员告诉我,包含 [@id="IDName"] 之类的显式 id 会提高性能,因为它可以让应用程序更快地找到元素。

这是真的,还是神话?

作为一个例子,这些是我正在处理的一些 Xpath:

没有 ID 的 XPATH:

/html/body/div[2]/div/div/div[3]/div/table/tbody//tr

带 ID 的 XPath:

//body[@id= "body"]/div[@id= "wrapper"]/div[@id= "MainContent"]/div[@id="Grid"]/div[@id="DataTableContainer"]/div/table/thead

Java 真的能够比第一个更快地找到第二个元素吗?

【问题讨论】:

  • 你可能想做/html/body[@id="body"]/..., //, a.k.a /descendant-or-self::node()/ 有成本
  • 你试过测量吗?
  • @MatthewFarwell 我没有。我不知道这样的工具是否存在。
  • @pault。谢谢保罗。有道理,会注意到这一点。

标签: html xml xpath junit


【解决方案1】:

这完全取决于您使用的 XPath 处理器。

测量一下看看。

使用 id() 函数比使用谓词更有可能为您提供快速访问,但这取决于它是 DTD 定义的 ID 属性。

如果您想确保索引访问,请使用 XSLT 和 key() 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2022-07-13
    • 2020-08-16
    • 2010-10-23
    • 2021-03-24
    相关资源
    最近更新 更多