¿Interactuando con el menú desplegable de JavaScript usando WebDriver y Ruby?

Estoy escribiendo la automatización para una página web que utiliza Ruby y Selenium WebDriver, pero he encontrado un problema de bloqueo con algunos de los menús desplegables en el sitio que se realizan utilizando JavaScript en lugar del HTML estándar. En estos menús desplegables, los usuarios pueden seleccionar una opción del menú desplegable o hacer clic en ella y comenzar a escribir para filtrar los resultados según lo que se haya escrito (supongo que la idea es que estos menús desplegables son para listas potencialmente muy largas de opciones).

El problema es que no puedo encontrar una manera de interactuar con ellos usando WebDriver, aunque he logrado que funcione en el IDE de Selenium usando el siguiente código, pero exportar este script IDE a Ruby no funciona:

<tr>
    <td>select</td>
    <td>css=select[name=dsref]</td>
    <td>demo</td>
</tr>

El código de WebDriver que estoy usando es:

def clickOn (parameters = {})
      # This will accept a locator type and name to click on
      #
      # EXAMPLE
      #
      # clickOn(
      #   locatorType: :link,
      #   locatorName: 'Home'
      # )
      #
      # This will click on the link named 'Home'
      locatorType = parameters[:locatorType]
      locatorName = parameters[:locatorName]
      $driver.find_element(locatorType, locatorName).click
    end

    clickOn(
          locatorType: :xpath,
          locatorName:     '/html/body/form/fieldset[4]/div[2]/div/div/div/a/span'
      )

Luego intenté ubicar la selección del menú desplegable de la misma manera utilizando la xpath del campo de valores ocultos, pero no puedo ubicar los valores ocultos.

El javascript con el que estoy tratando de interactuar es:

<div id="tabWarehousing" class="cansee">
<div class="lineFirst">
<div class="of8">
    <label for="formdsref">Warehouse</label>
    <br>
    <select id="sel2DZ" class="admn_dropdownmenu chzn-done" size="1" name="dsref"     style="display: none;">
        chosen=Chosen { form_field=select#sel2DZ.admn_dropdownmenu, options= {...}, active_field=

        true

        , more...}

        <option selected="" value=""></option>
        <option value="demo">demo</option>
        <option value="demodownload">demo download</option>
    </select>
    <div id="sel2DZ_chzn" class="chzn-container chzn-container-single chzn-container-single-  nosearch" style="width: 115px;">
        <a class="chzn-single" tabindex="-1" href="javascript:void(0)"> <span>demo</span>
        <div>
            <b></b>
        </div>
        </a>
        <div class="chzn-drop" style="left: -9000px; width: 113px; top: 18px;">
            <div class="chzn-search">
                <input type="text" autocomplete="off" style="width: 78px;">
            </div>
            <ul class="chzn-results">
                <li id="sel2DZ_chzn_o_1" class="active-result result-selected" style="">demo</li>
                <li id="sel2DZ_chzn_o_2" class="active-result" style="">demo download</li>
            </ul>
        </div>
    </div>
</div>

¿Alguna idea sobre cómo puedo establecer el valor de este menú desplegable utilizando Ruby WebDriver?

Respuestas a la pregunta(4)

Su respuesta a la pregunta