【发布时间】:2013-01-18 03:12:29
【问题描述】:
如何在Capybara中获取表单的动作?
我知道这不是正确的 BDD,但表单正在访问应用程序之外的 API。
可以使用 Webmock 检查表单是否已提交,但在这种情况下,我认为确保正确设置操作 URL 会更简单。
【问题讨论】:
标签: ruby-on-rails ruby rspec tdd capybara
如何在Capybara中获取表单的动作?
我知道这不是正确的 BDD,但表单正在访问应用程序之外的 API。
可以使用 Webmock 检查表单是否已提交,但在这种情况下,我认为确保正确设置操作 URL 会更简单。
【问题讨论】:
标签: ruby-on-rails ruby rspec tdd capybara
我很确定 capybara(至少 2.1.0 版)有帮手让这件事变得更容易。
在我们的规范中,我们会像这样检查表单操作:
form_action = find('#form_id')['action']
所以你不需要获取 Nokogiri 原生元素。
【讨论】:
您可以使用 .native 从 Capybara 元素中检索 Nokogiri 节点,从那里您可以轻松查询节点的属性:
element = find('#form_id')
node = element.native
form_action = node.attributes['action']
【讨论】:
find('#form_id').native.attributes['action'].value. should == expected_url