我正在使用 Cucumber 测试 Web 应用程序的行为(在后台使用 Selenium 和 Watir)。我的网络应用程序有 HTML5 页面并使用新的“必需”属性。如果我有一个包含必填字段的数据输入表单,并且我提交了该字段为空白的表单,我想验证 Web 应用程序是否正确响应错误条件。
不幸的是,在使用 HTML5 Web 浏览器进行测试时,Cucumber 似乎无法通过 Web 驱动程序访问字段验证失败时弹出的错误消息。在任何情况下,都不会提交表单,页面仍保留在数据输入表单上。
另一方面,当测试无头或使用不兼容 HTML5 的浏览器时,表单可能会提交,从而允许我的 Web 应用程序捕获错误并将用户发送回带有错误消息的表单页面。
在第二种情况下,我可以轻松测试错误消息的存在,因为它是页面中交付的 HTML 的一部分。我的问题是我看不到如何编写一个测试场景来验证无头浏览器和 HTML5 浏览器情况的错误情况。
在 Selenium 和 Watir Web 驱动程序的当前状态下,这可能是不可能的。但是,如果有人知道如何验证 HTML5“必需”错误弹出消息,那将是一个很大的帮助。
编辑 2012-06-02:
这是一个包含 HTML5 浏览器警告示例的示例页面。
有一个必需的文本和选择,一个显示内部提示文本的文本框,以及一个带有正则表达式输入验证的文本框。该页面没有任何 CSS 或 javascript 来混淆问题,它只是普通的 HTML5。请参阅w3schools 页面中有关 HTML5 字段属性的完整分类。假设表单成功,表单提交给一个简单的 CGI 脚本,该脚本只是回显表单输入。提交失败将保留在示例表单页面上。