7

目前,我正在使用 RoR、MySQL、HTML、CSS 和 jQuery 等构建 Web 门户,我的自动化测试工程师要求我向我的应用程序的所有元素添加 ID 属性(如果可能的话,还包括 NAME 属性)。

我很困惑这样做,也许我不确定这是否是一个好习惯,所以任何人都可以帮助我解决向我的应用程序的所有元素添加 ID 属性的具体缺点/问题。

谢谢,
湿婆

4

2 回答 2

13

要进行可靠的前端测试,您需要能够在不使用过于具体的选择器的情况下识别某些元素(如果您没有参考元素,则需要这样做)。喜欢body div:nth-of-type(4) ul li:nth-child(5) a检查某个链接的选择器不仅明显丑陋,而且还容易改变标记。一个小小的改变可能会破坏你一半的测试套件。为了避免这种情况,有几种方法可以让您的测试工程师的生活更轻松:

糟糕的方式

ids 分配给您的所有页面元素...

好办法

是以下方法:

  1. 利用新的语义标签,如<nav>, <header>, <footer>, <main>, 和<section>.
    使用这些元素,您可以构建页面的基本结构
  2. ids 分配给重要/独特的页面元素。谨慎使用它们,使用有意义的名称,并记住ids 代表独特的元素(可能只在页面上出现一次)!
  3. 使用该class属性对多个具有相似特征的元素进行分组(例如导航元素、外部/内部锚点、交互元素……)
  4. 避免name使用属性,或仅在必要时使用。HTML5 在某些元素上弃用了这个属性,比如<a>,所以我会完全避免它。没有必要考虑您拥有的所有其他选项。

最后,您应该与您的测试工程师进行一次结对编程会议,以更好地了解他的需求是什么,这样您就不会在页面上贴上无用的标记。

于 2016-04-02T23:53:34.147 回答
1

s 允许可靠地找到页面上的id特定元素,即使元素周围的标记发生变化(例如,用于视觉刷新)。

另一方面,无关id的 s 会增加页面下载大小和内存占用。

ids 也应该是唯一的,因此为页面上的每个元素提供一个唯一的 id会困难,但这可能不是测试自动化所需要的。

于 2016-04-02T23:20:12.277 回答