是否有一个用于注释HTML的系统,用于识别对Web用户界面测试自动化至关重要的元素/属性(由Selenium,HTMLUnit,Watir,Sahi等)?系统可能是标准或库。例如,注释可以实现为HTML数据属性,其仅引用属性名称,XPath表达式或CSS选择器,其需要存在并且为了测试自动化目的而保持一致。如果识别出的属性/元素发生变化,则测试自动化可能会中断,因此开发人员不应在不与负责自动化的人协调的情因此,注释至少是开发人员的视觉提示。
但除此之外,也许系统的“执行者”部分(持续集成插件,CLI或同一页面上的JavaScript库)会在一定程度上强制执行注释,如果某些条件不满足则会快速而明确地失败。也许标识的属性/ XPath / selector必须存在并引用定义注释的相同元素。执行者还可以收集所有注释,并可能在Web应用程序的每个页面上报告它们的完整列表,以进行差异通知。
我可能有一些细节没有很好的解决,但希望我正在寻找的要点是有道理的。免费许可证会很方便,但并非绝对必要。
这样的事情是否存在?
一个有用的答案也可能是:
动机: Web用户界面测试可能对HTML元素和属性的更改敏感。测试通常在集成测试工作或阶段中运行,这可能明显晚于构建或单元测试。在构建或单元测试阶段更早地捕获UI元素和测试期望之间的一些潜在不匹配将是很好的,并且还为测试自动化工程师提供更多信息以指示测试中的错误可能与被测产品中的错误。
答案 0 :(得分:0)
正如你所说:
注释可以例如实现为HTML数据属性
这是人们使用HTML5的方式,因为它使我们能够将控制权交给我们的QA自动化团队,并让开发团队忽略他们的顾虑(更改元素上的ID会影响他们的测试)。
因此,HTML元素可能看起来像(一个相对人为的例子):
<div id="button" data-test-attribute="submit"></div>
这些库使用的大多数选择器都使用面向CSS的选择,从而选择上述方法。有许多文章已经开始解决这个问题。
A really brief one我喜欢各州:
ID和css类名称的用途不同于用法 在UI自动化测试中。 Css类主要用于样式 元素,他们也可以在生产页面上得到证实。 ID的 还有另一个目的,有时也可以改变或者他们 没有得到实施,因为它们干扰了其他功能 页面。
您的问题的另一部分似乎是关注执行。使用像Node.js和webpack这样的手工旋转的东西,可以相对简单地集成到你的构建过程中(可能会大大增加你的构建时间 - 但肯定是可能的)。