0

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

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

这是真的,还是神话?

举个例子,这些是我正在处理的一些 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 真的能够比第一个更快地找到第二个元素吗?

4

1 回答 1

1

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

测量一下看看。

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

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

于 2013-10-01T22:31:07.233 回答