【问题标题】:Using capybara to select radio button value that's in another field?使用 capybara 选择另一个字段中的单选按钮值?
【发布时间】:2018-06-04 15:23:48
【问题描述】:

我有一个用 Rails 编写的multiple choice quiz game。我正在尝试编写一个集成测试,点击测验,选择正确的答案。这是我的看法:

<h2>The word is: <%= @question %> <br> </h2>
<h2>Your score is <%= session[:score] %> </h2>
<h2><%= @questions_remaining %> questions left!</h2>
    <% answers = @quiz_words.shuffle %>
      <%= form_tag("answer", method: "get") do %>
        <%= radio_button_tag(:answer, "#{answers.first.id}")%><%= answers.first.definition %><br>
        <%= radio_button_tag(:answer, "#{answers.second.id}")%><%= answers.second.definition %><br>
        <%= radio_button_tag(:answer, "#{answers.third.id}")%><%= answers.third.definition %><br>
        <%= radio_button_tag(:answer, "#{answers.fourth.id}")%><%= answers.fourth.definition %> <br>
        <%= hidden_field_tag :orig,  "#{@quiz_words.first.id}" %>
        <%= submit_tag("Submit") %>
      <% end %>
<%= link_to 'Back to Index', root_path %> <br>

正确答案在 html 源代码中生成为隐藏字段 id = 'orig' ,其值作为答案。

我希望 Capybara 查找隐藏字段及其值(“13”),然后在下一步中,选择与隐藏字段具有相同值的单选按钮。这是生成的 html 源代码

我是 Capybara 的新手,通过它的文档无法找到它是否可能。

  • 这可能吗,如果可以的话,有人可以告诉我怎么做或指向我的文档吗?

  • 这是测试测验功能的最佳方式吗?还是我会以另一种方式更好地测试它? (单元测试?)

【问题讨论】:

    标签: ruby-on-rails capybara integration-testing


    【解决方案1】:

    是的,这是可能的,您可能希望在此处使用集成测试。

    1. Find隐藏输入
    2. 获取它是value
    3. Choose 带有步骤 2 中返回值的收音机。

    【讨论】:

      【解决方案2】:

      这里唯一稍微复杂的事情是你想寻找一个不可见的元素,你可以使用visible: false 选项。

      orig_value = find('#orig', visible: false).value
      choose(option: orig_value)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-19
        • 1970-01-01
        • 2016-09-24
        • 2011-10-28
        • 1970-01-01
        • 2020-01-21
        • 2011-11-05
        • 1970-01-01
        相关资源
        最近更新 更多