我目前正在尝试从选择列表中选择一个随机元素,我可以映射所有选项然后随机选择一个,但问题是te选择器内的optgroup,这里是html和我的代码的示例。 HML:
<select class="formDY-control" name="destino" id="destino">
<option value="0" style="background-color:#eeeeee">Selecciona Lugar de
Recogida</option>
<optgroup value="0" label="Aeropuertos">
<option value="LUX01">Luxemburg Aeropuerto</option></optgroup>
<optgroup value="0" label="Todos los Destinos">
<option value="LUX01">Luxemburg Aeropuerto</option>
<option value="LUX02">Luxemburg City Ciudad</option>
</optgroup></select>
这是我的代码
ciudad = browser.select_list(id: 'destino').options.map(&:value)
ciudad.shift
city = ciudad.sample
browser.select_list(id: 'destino').select(city)
问题是代码返回所选选项(数组样本)不在选择列表
中答案 0 :(得分:2)
您可以选择随机选项元素,而不是随机选择一个选项值。然后您可以使用它的select
方法来选择该特定选项(而不是要求选择列表再次找到该选项):
ciudad = browser.select_list(id: 'destino').options
ciudad.shift
city = ciudad.sample
city.select
答案 1 :(得分:1)
由于您正在使用数组,而optgroups的值为零,您可以执行以下操作
browser
.select_list(id: 'destino')
.options
.select{ |opt| opt.value != '0' }
.map(&:value)