【问题标题】:How to get the action of a form in Capybara?如何在 Capybara 中获取表单的动作?
【发布时间】:2013-01-18 03:12:29
【问题描述】:

如何在Capybara中获取表单的动作?

我知道这不是正确的 BDD,但表单正在访问应用程序之外的 API。

可以使用 Webmock 检查表单是否已提交,但在这种情况下,我认为确保正确设置操作 URL 会更简单。

【问题讨论】:

    标签: ruby-on-rails ruby rspec tdd capybara


    【解决方案1】:

    我很确定 capybara(至少 2.1.0 版)有帮手让这件事变得更容易。

    在我们的规范中,我们会像这样检查表单操作:

    form_action = find('#form_id')['action']
    

    所以你不需要获取 Nokogiri 原生元素。

    【讨论】:

      【解决方案2】:

      您可以使用 .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
      • 太棒了,很高兴我能帮上忙。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 2013-12-17
      • 1970-01-01
      相关资源
      最近更新 更多