Взаимодействуете с JavaScript выпадающее меню с использованием WebDriver и Ruby?

Я пишу автоматизацию для веб-страницы с использованием Ruby и Selenium WebDriver, но столкнулся с проблемой блокировки с некоторыми раскрывающимися списками на сайте, которые сделаны с использованием JavaScript вместо стандартного HTML. В этих раскрывающихся списках пользователи могут выбрать параметр в раскрывающемся списке или щелкнуть по нему и начать набирать его, чтобы отфильтровать результаты по набранному тексту (я предполагаю, что идея состоит в том, что эти раскрывающиеся списки предназначены для потенциально очень длинных списков параметры).

Проблема в том, что я не могу найти способ взаимодействия с ними с помощью WebDriver, хотя мне удалось заставить его работать в Selenium IDE с помощью приведенного ниже кода, но экспорт этого сценария IDE в Ruby не работает:

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

Код WebDriver, который я использую:

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'
      )

Затем я попытался найти выделение из раскрывающегося списка таким же образом, используя xpath поля скрытых значений, но он не может найти скрытые значения.

JavaScript, с которым я пытаюсь взаимодействовать:

<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>

Любые идеи о том, как я могу установить значение этого раскрывающегося списка, используя Ruby WebDriver?

Ответы на вопрос(4)

Ваш ответ на вопрос