我在我的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"
"Small"
答案 0 :(得分:1)
对于选择列表,只有value
方法没有值属性时,@page.find('#bar_effort').all('option').find(&:selected?).text
#=> "Small"
方法才会返回所选选项的文本。
要获取所选选项的文本,您需要手动找到该选项并获取其文本:
{{1}}