获取Capybara中选择2的选定值

时间:2014-06-30 17:59:28

标签: ruby-on-rails capybara jquery-select2

我在我的rails代码中有一个select2下拉列表,我试图设置并通过capybara断言。

<select class="select optional select2-offscreen" id="bar_effort" name="bar[effort]" tabindex="-1"><option value=""></option>
   <option value="0">Small</option>
   <option value="1">Medium</option>
   <option value="2">Large</option>
   <option value="3">Extra Large</option>
</select>

要设置值,我有以下(工作正常):

 def effort=(effort)
    @page.select(effort, :from => 'bar_effort')
 end

一旦设置了值,我关闭表单,当我返回到表单时,我想断言我设置的值仍然被选中。为此,我尝试了以下方法:

  def effort 
    @page.find(:css, '#bar_effort').value #version 1
  end

  def effort
    @page.find(:css, '#bar_effort').text #version 2
  end

当我期待"0"时,版本1给了我"Small" 当我期待"Small Medium Large Extra Large"

时,版本2给了我"Small"

1 个答案:

答案 0 :(得分:1)

对于选择列表,只有value方法没有值属性时,@page.find('#bar_effort').all('option').find(&:selected?).text #=> "Small" 方法才会返回所选选项的文本。

要获取所选选项的文本,您需要手动找到该选项并获取其文本:

{{1}}