【问题标题】:Getting selected value of a select 2 in Capybara在 Capybara 中获取 select 2 的选定值
【发布时间】:2014-06-30 17:59:27
【问题描述】:

我的 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

版本 1 在我期待 "Small" 时给了我 "0"
版本 2 在我期待 "Small" 时给了我 "Small Medium Large Extra Large"

【问题讨论】:

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


    【解决方案1】:

    对于选择列表,value 方法将仅在没有 value 属性时返回所选选项的文本。

    要获取所选选项的文本,您需要手动定位选项并获取其文本:

    @page.find('#bar_effort').all('option').find(&:selected?).text
    #=> "Small"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 2016-09-20
      • 2017-05-30
      相关资源
      最近更新 更多