2017-10-19 1 views
1

Ich versuche derzeit, ein zufälliges Element aus einer Auswahlliste auszuwählen, ich kann alle Optionen zuordnen und dann eine nach dem Zufallsprinzip auswählen, aber das Problem ist die optgroup innerhalb te Selektor, hier ist ein Beispiel für den HTML-Code und meinen Code. HML:Ruby Pick zufälliges Element aus der Auswahlliste mit 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> 

Und hier mein Code

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

Problem ist, dass der Code zurückgibt, dass die gewählte Option (Array Probe) ist nicht in der Auswahlliste

+0

Was ist der Wert von 'ciudad' nach der ersten Zeile des Codes? – hoffm

+0

ist ein Array mit den Werten des Dropdown-Menüs, die beide optgroups zählen – Boikot

Antwort

2

Anstatt einen Optionswert nach dem Zufallsprinzip auszuwählen, können Sie ein zufälliges Optionselement auswählen. Dann können Sie es verwenden select Methode, dass bestimmte Option auswählen (anstatt die Auswahlliste zu fragen Sie die Option wieder zu finden):

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

Da mit dem Sie arbeiten Arrays, und die optgroups haben einen Wert von Null, können Sie so etwas tun

+0

Dies ist eine nette Art, die zufälligen Elemente auszuwählen, aber das Problem kommt, wenn ich diesen Wert im Drop-down-Menü auswählen muss, da ich nicht weiß, wie man Ruby in welchem optgroup ist dieser Wert – Boikot

+0

Kannst du das nicht benutzen? http://www.rubydoc.info/github/watir/watir-classic/Watir/SelectList#select_value-instance_method – Maru

Verwandte Themen