Interaktion mit JavaScript-Dropdown-Menü mit WebDriver und Ruby?

Ich schreibe Automatisierung für eine Webseite mit Ruby und Selenium WebDriver, habe jedoch ein Blockierungsproblem mit einigen Dropdowns auf der Website festgestellt, die mit JavaScript anstelle von Standard-HTML erstellt wurden. In diesen Dropdown-Listen können Benutzer eine Option aus der Dropdown-Liste auswählen oder darauf klicken und mit der Eingabe beginnen, um die Ergebnisse basierend auf der Typisierung zu filtern (ich gehe davon aus, dass diese Dropdown-Listen möglicherweise sehr lange Listen enthalten) Optionen).

Das Problem ist, dass ich mit WebDriver keine Möglichkeit zur Interaktion mit ihnen finden kann, obwohl ich es mit dem folgenden Code geschafft habe, dass es in der Selenium-IDE funktioniert, aber das Exportieren dieses IDE-Skripts nach Ruby funktioniert nicht:

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

Der von mir verwendete WebDriver-Code lautet:

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

Ich habe dann versucht, die Auswahl aus der Dropdown-Liste auf die gleiche Weise über den x-Pfad des Felds für ausgeblendete Werte zu finden, kann die ausgeblendeten Werte jedoch nicht finden.

Das Javascript, mit dem ich zu interagieren versuche, ist:

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

Irgendwelche Ideen, wie ich den Wert dieser Dropdown-Liste mit Ruby WebDriver festlegen kann?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage