我有一个简单的表单,其中包含一个“电子邮件”字段和两个提交按钮。
第一个按钮“下一步”触发表单默认操作:“/login”。 第二个按钮“重置密码”有一个“formaction”元素,可将表单重定向到新目的地:“/reset_password”。
<button type="submit" name="login_button">Next</button>
<button class="secondary_button" type="submit" name="reset_button" formaction="/reset_password">Reset Password</button>
该表单运行良好,但是在使用 Capybara 进行测试时:
click_button "Reset Password"
它触发表单的默认操作而不是正确的操作。我已确认正在触发默认操作:
save_and_show_page
它确实触发了正确的按钮,但似乎忽略了“formaction”。
有什么想法吗?
最佳答案
您可能知道,这是一个 HTML5 属性,因为 Capybara 默认使用 RackTtest 作为其驱动程序/浏览器(这是一个非常准系统,不支持 JS 的驱动程序),它可能根本看不到它。我假设您需要使用像 PhantomJS ( http://phantomjs.org/index.html ) 这样的 headless 浏览器进行设置。其中支持 HTML5 属性。
关于ruby-on-rails-3 - capybara 和形成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10227051/