帮助web UI测试自动化元素/属性引用的HTML注释系统?

帮助web UI测试自动化元素/属性引用的HTML注释系统?,html,automation,automated-tests,ui-automation,Html,Automation,Automated Tests,Ui Automation,是否有一个注释HTML的系统,用于识别对web用户界面测试自动化至关重要的元素/属性(Selenium、HTMLUnit、Watir、Sahi等)?系统可能是标准或库。例如,注释可以实现为HTML数据属性,这些属性只引用属性名、XPath表达式或CSS选择器,这些属性需要存在并保持一致,以实现测试自动化。如果标识的属性/元素发生变化,测试自动化可能会中断,因此开发人员不应在未与负责自动化的人员协调的情况下对其进行更改。因此,注释至少是开发人员的视觉提示 但除此之外,系统的“实施者”部分(持续集成

是否有一个注释HTML的系统,用于识别对web用户界面测试自动化至关重要的元素/属性(Selenium、HTMLUnit、Watir、Sahi等)?系统可能是标准或库。例如,注释可以实现为HTML数据属性,这些属性只引用属性名、XPath表达式或CSS选择器,这些属性需要存在并保持一致,以实现测试自动化。如果标识的属性/元素发生变化,测试自动化可能会中断,因此开发人员不应在未与负责自动化的人员协调的情况下对其进行更改。因此,注释至少是开发人员的视觉提示

但除此之外,系统的“实施者”部分(持续集成插件、CLI或同一页面上的JavaScript库)可能会在某种程度上实施注释,如果不满足某些条件,则会快速而明确地失败。可能标识的属性/XPath/selector必须存在并引用定义注释的同一元素。实施者还可以收集所有注释,并可能在web应用程序的每个页面上报告注释的完整列表,以用于不同的通知目的

我可能有一些细节没有很好地解决,但希望我所寻找的要点是有意义的。免费许可证很方便,但并非绝对必要

这样的东西存在吗

一个有用的答案可能是:

  • 有一个更好的方法来解决你的潜在需求(解释)
  • 我们试图实现这一点,但不值得;原因如下
动机:Web用户界面测试可能对HTML元素和属性的更改很敏感。测试通常在集成测试作业或阶段运行,这可能比构建或单元测试晚很多。在构建或单元测试阶段,尽早发现UI元素和测试期望之间的一些潜在不匹配,并向测试自动化工程师提供更多信息,以指示测试中的错误与被测产品中的错误。

正如您所说:

例如,注释可以实现为HTML数据属性

这就是人们使用HTML5的方式,因为它使我们能够将控制权交给QA自动化团队,并让开发团队忽略他们的顾虑(更改元素的ID会影响他们的测试)

因此,HTML元素可能看起来像(一个相对人为的示例):


这些库使用的大多数选择器都使用面向CSS的选择,使得选择上面的内容更加容易。有许多文章已经开始讨论这个问题

A我喜欢美国:

ID和css类名除了用途之外还有另一个用途 用户界面中的自动化测试。Css类主要用于设置样式 元素,它们也可以在制作页面上被丑化。身份证 也有另一个目的,有时也可能只是改变或改变 无法实现,因为它们会干扰上的其他函数 这一页

你问题的另一部分似乎与执法有关。使用Node.js和webpack之类的东西,将其集成到构建过程中相对简单(可能会大大增加构建时间,但肯定是可能的)

<div id="button" data-test-attribute="submit"></div>