如何使用黄瓜测试HTML5页面中的错误条件?

Aar*_*own 15 bdd html5 cucumber

我正在使用Cucumber测试Web应用程序行为(在引擎盖下使用Selenium和Watir).我的网络应用程序有HTML5页面,并使用新的"必需"属性.如果我有一个带有必填字段的数据输入表单,并且我将该表单提交为空白字段,我想验证Web应用程序是否正确响应错误情况.

不幸的是,当使用HTML5 Web浏览器进行测试时,Cucumber似乎无法通过Web驱动程序访问在失败的字段验证中弹出的错误消息.在任何情况下,表单都不会提交,页面仍保留在数据输入表单中.

另一方面,当测试无头或使用不符合HTML5的浏览器时,表单可能会提交,允许我的Web应用程序捕获错误并将用户发送回表单页面并显示错误消息.

在第二种情况下,我可以轻松地测试错误消息是否存在,因为它是页面中传递的HTML的一部分.我的问题是我无法看到如何编写单个测试场景来验证无头和HTML5浏览器情况下的错误情况.

对于Selenium和Watir web驱动程序的当前状态,这可能是不可能的.但如果有人知道如何验证HTML5"必需"错误弹出消息,那将是一个很大的帮助.

编辑2012-06-02:

这是一个示例页面,其中包含HTML5浏览器警告的示例.

有一个必需的文本和选择,一个显示内部提示文本的文本框,以及一个带有正则表达式输入验证的文本框.该页面没有任何CSS或javascript来混淆问题,它只是vanilla HTML5.有关完整细分,请参阅w3schools页面有关HTML5字段属性的信息.表单提交一个简单的CGI脚本,它只是回显表单输入,假设表单成功.提交失败将保留在示例表单页面上.

小智 1

我以前没有使用过 HTML5required属性。但从表面上看,该required属性只是提醒浏览器必须填写该表单字段(即 DOM 不会更改)。

在我看来,断言该required属性存在于相应表单字段的 HTML 中是合理的。HTML5 浏览器和非 HTML5 浏览器都应该通过该测试。

在我看来,试图断言除此之外的任何事情都像是在测试浏览器的功能。