10

我有一个查询 在我们的应用程序中,我们有很多 HTML 标记。在开发过程中,由于没有要求,许多标签没有被赋予任何 ID。现在 QA 团队希望使用 QTP 自动化测试用例。在大多数情况下,此工具无法识别,因为它没有找到大多数 HTML 标签的 id。现在我们被要求为所有 HTML 标签添加 id。我想知道向这些标签添加 id 属性是否会有任何影响。甚至积极的影响也是受欢迎的

4

5 回答 5

8

我不认为会有任何积极或消极的影响:也许 HTML 页面的大小会增加一点,但可能不会那么多。

不过,您确定需要在页面的每个 HTML 标记上添加“id”属性吗?不是只有几个就够了吗?就像表单域、链接、错误消息一样;大概就是这样?

但是,您必须注意的一件事是“id”,如“identifers”,必须是唯一的;这意味着在开始添加它们之前,定义某种“id-policy”可能会很好,例如,“这种元素的 id 应该以这种方式命名”。

而且,对于您的下一个项目:让开发人员在开发时添加这些项目;
-)(当然要遵循政策)


现在我正在考虑它:一个积极的影响可能是编写与您的 HTML 文档交互的 Javascript 代码会更容易——但是对于下一个项目或这个项目的演进来说,当这些 id 是在开发人员将 JS 代码放置到位时,HTML 中已经存在......

于 2009-08-11T10:55:01.057 回答
4

由于还没有与 QTP 相关的答案。

QTP 中的 GUI 识别是面向对象的。为了识别一个对象,QTP 需要一个对象属性的唯一组合,并尽可能快地检查它们——这就是为什么 HTML ID 是理想的。

现在,它尤其重要 - 对于没有其他唯一标识符的对象。最典型的例子——html表格。它们的内容是动态的,它们在页面上的数量可能会有所不同。通过添加 HTML ID,您可以让识别机制直接找到正确的表格。

具有其他独特属性的对象可以在没有 HTML ID 的情况下很好地识别。例如,如果页面上有一个“提交”链接,QTP 将通过内部文本成功识别它。

所以特定于上下文的答案:不要开始为每个标签添加 id。让自动化人员准备一份他们有问题的对象列表。并为这些对象添加 ID。

PS。它还取决于自动化编程技能。有描述性编程和动态识别方法。即使没有提供 ID,它们也允许检索正确的对象。

于 2009-08-11T12:13:08.440 回答
2

正如Albert所说,QTP 并不仅仅依赖于 elements' id,实际上是因为许多 Web 应用程序id为每个会话生成不同的 s ,(据我记得)该id属性不是大多数默认描述的一部分网络测试对象。

QTP is pretty good at recognizing most simple web controls and if you're facing problems it may be the case that a Web Extensibility project will help you bridge the gap between the semantics of your web application and the raw HTML it is created in. If a complex control is recognized by QTP as a WebElement (which is actually the div that contains the span that drives the code) you will understandably have object recognition problems since there are many divs on the page but probably many less complex controls.

于 2009-08-11T18:12:39.260 回答
1

如果您在谈论副作用 - 不。添加 id 不会导致任何问题(当然除了占用一些额外的字节)

如果您确实需要添加 id,请继续添加它们。

于 2009-08-11T10:53:27.300 回答
0

http://www.w3.org/TR/html4/struct/links.html#anchors-with-id说:

id 和 name 属性共享相同的名称空间。这意味着它们不能在同一文档中同时定义具有相同名称的锚点。允许使用这两个属性为以下元素指定元素的唯一标识符:A、APPLET、FORM、FRAME、IFRAME、IMG 和 MAP。当两个属性都用于单个元素时,它们的值必须相同。

于 2009-08-11T10:59:21.157 回答