代码之家  ›  专栏  ›  技术社区  ›  GustyWind

为QA自动化向HTML标记添加ID

  •  8
  • GustyWind  · 技术社区  · 15 年前

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

    5 回复  |  直到 10 年前
        1
  •  7
  •   Pascal MARTIN    15 年前

    我不认为会有任何正面或负面的影响:也许HTML页面的大小会增加一点,但可能不会增加太多。

    不过,您确定需要在页面的每个HTML标记上添加“id”属性吗?这些就够了吗?就像在表单字段、链接、错误消息上一样,这很可能就是问题所在?

    不过,有一件事你必须注意,那就是“id”,就像“identifiers”, 必须是唯一的 ;这意味着在开始添加它们之前,定义某种类型的“ID策略”可能比较好,例如,“此类元素的ID应该以这种方式命名”。

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


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

        2
  •  4
  •   Albert Gareev    15 年前

    因为还没有与qtp相关的答案。

    qtp中的图形用户界面识别是面向对象的。为了识别一个对象,qtp需要对象属性的独特组合,并尽可能快地检查它们——这就是为什么HTML ID是理想的。

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

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

    因此,上下文特定的答案是:不要开始向每个标记添加ID。让自动化人员准备一份他们有问题的对象列表。并向这些对象添加ID。

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

        3
  •  2
  •   Community CDub    7 年前

    AS Albert 也就是说,qtp不仅仅依赖于元素 id 实际上,由于许多Web应用程序生成的 身份证件 对于每一次会议(据我所记得的)的 身份证件 属性不是大多数Web测试对象的默认描述的一部分。

    qtp非常擅长识别最简单的Web控件,如果您遇到问题,可能是因为 Web Extensibility 项目将帮助您弥合Web应用程序的语义和创建它的原始HTML之间的鸿沟。如果复杂控件被qtp识别为 WebElement (实际上是 div 其中包含 span 这就驱动了代码)可以理解,因为存在很多对象识别问题 div S在页面上,但可能更少 复杂控件 .

        4
  •  1
  •   Anonymous    15 年前

    如果你说的是副作用-不。添加ID不会导致任何问题(当然除了占用一些额外的字节)

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

        5
  •  0
  •   VolkerK    15 年前

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

    ID和名称属性共享相同的名称空间。这意味着它们不能在同一文档中同时定义具有相同名称的锚。允许使用这两个属性为以下元素指定元素的唯一标识符:a、applet、form、frame、iframe、img和map。当两个属性都用于单个元素时,它们的值必须相同。