我有一个选择下拉列表:
<%= f.select :image_size_id, options_for_select(@image_sizes.collect{ |i| [i.dimension, { id: i.dimension} ]}), { prompt: "Please select a Print Size" }, id: 'image_size_select' %>
哪个以HTML返回:
<select id="image_size_select" name="cart_item[image_size_id]">
<option value="">Please select a Print Size</option>
<option id="10x8" value="13">10x8 £14.0</option>
<option id="A4" value="14">A4 £33.0</option>
<option id="A3" value="15">A3 £36.0</option>
<option id="A2" value="16">A2 £47.0</option>
</select>
现在,可以在测试中选择一个选项,例如:
find('#image_size_select').find("option[id='A2']").select_option
find('#image_size_select').find("option[value='14']").select_option
我想做的是选择提示,以便测试我的验证,是否可以设置提示的ID或按文本选择?我试过了:
find('#image_size_select').find("option[text='find('#image_size_select').find("option[id='A2']").select_option']").select_option
但这行不通,也不行:
find('#image_size_select').find(:xpath, 'option[1]').select_option
水豚#select
通过选项元素的文本而非值来选择选项。当与:from选项一起传递时,它将实现为:find(:select, '<select id, name, or associated label text (the :from option)>').find(:option, '<text of option element>').select_option
这意味着在指定的select中选择第一个选项的正确调用是
page.select "Please select a Print Size", from: 'image_size_select'
选择下一个选项
page.select "10x8 £14.0", from: 'image_size_select'
由于Capybaras的默认部分字符串匹配
page.select "10x8", from: 'image_size_select'
只要“ 10x8”仅与select中的一个选项部分匹配,也会选择10x8选项
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句