2017-10-19 1 views
1

현재 선택 목록에서 임의의 요소를 선택하려고합니다. 모든 옵션을 매핑 한 다음 임의로 선택 할 수 있지만 문제는 opt 그룹의 내부입니다. html과 my code의 샘플. HML : 여기Ruby가 optgroups를 사용하여 선택 목록에서 임의의 요소를 선택합니다.

<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

코드의 첫 번째 줄 이후'ciudad'의 값이 무엇입니까? – hoffm

+0

은 두 optgroups를 모두 계산하는 드롭 다운 값이있는 배열입니다. – Boikot

답변

2

임의로 옵션 값을 선택하는 대신 임의의 옵션 요소를 선택할 수 있습니다. 그럼 당신은 (오히려 옵션을 다시 찾을 수있는 선택 목록을 물어보다)는 특정 옵션을 선택 select 방법이다 사용할 수 있습니다

ciudad = browser.select_list(id: 'destino').options 
ciudad.shift 
city = ciudad.sample 
city.select 
1

아님을 반환한다는 것입니다 배열 및 옵트 그룹의 값이 0 인 경우 다음과 같이 할 수 있습니다.

browser 
    .select_list(id: 'destino') 
    .options 
    .select{ |opt| opt.value != '0' } 
    .map(&:value) 
+0

이것은 임의의 elmente를 선택하는 좋은 방법입니다.하지만 문제는 드롭 다운에서이 값을 선택해야 할 때입니다. optgroup은이 값인 – Boikot

+0

당신은 이것을 사용할 수 없습니까? http://www.rubydoc.info/github/watir/watir-classic/Watir/SelectList#select_value-instance_method – Maru

관련 문제