簡體   English   中英

無法使用 selenium VBA 從網頁的下拉列表中選擇一個值

[英]Unable to select a value from dropdown in webpage using selenium VBA

我正在嘗試使用 Seleinum 和 VBA 綁定從網頁的下拉列表中選擇一個值,但我無法做到。

這是我試過的代碼bot.FindElementById("holder-samples-date-type-inputEl").SendKeys "XX"

我沒有收到任何錯誤代碼運行它單擊下拉按鈕並顯示列表但未選擇任何值並且下拉列表不會更改。

我有與 VBA 和 IE(DOM 元素)相同的項目,此代碼在 Internet Explorer IE.document.getElementById("holder-samples-date-type-inputEl").Value = "XX"

此下拉列表的有趣部分是單擊下拉圖標后,我無法檢查列表(例如右鍵單擊列表),如果我單擊網頁中的任何其他位置或更改窗口,下拉列表將關閉(例如它收回)注意:這不是鼠標懸停下拉菜單。 此外,當列表打開時,似乎添加了額外的代碼(我粘貼了一段代碼)

以下是網頁中的 HTML。

<div id="holder-samples-date-type-triggerWrap" data-ref="triggerWrap" class="x-form-trigger-wrap x-form-trigger-wrap-default x-form-trigger-wrap-invalid">
<div id="holder-samples-date-type-inputWrap" data-ref="inputWrap" class="x-form-text-wrap x-form-text-wrap-default x-form-text-wrap-invalid"><input id="holder-samples-date-type-inputEl" data-ref="inputEl" type="text" role="combobox" aria-label="Chargebacks: Date Type" aria-readonly="false" aria-required="true" aria-haspopup="true" aria-expanded="false" aria-autocomplete="list" size="1" name="P_samples_Date_Type" readonly="readonly" class="x-form-field x-form-required-field x-form-text x-form-text-default  x-form-invalid-field x-form-invalid-field-default" autocomplete="off" aria-labelledby="holder-samples-date-type-labelEl" aria-owns="boundlist-1206" componentid="holder-samples-date-type" data-errorqtip="<ul class=&quot;x-list-plain&quot;><div>Date Type</div><li>This field is required</li></ul>" aria-invalid="true"></div>
<div id="holder-samples-date-type-trigger-picker"
aria-label="Trigger" class="x-form-trigger x-form-trigger-default x-form-arrow-trigger x-form-arrow-trigger-default "><img class="combo-trigger-placeholder" src="https://www.sample.net/clr/images/16x16_transparent.png" title="combobox trigger" alt="combobox trigger"></div>
</div>

下面是圖片在此處輸入圖片說明

由於我無法右鍵單擊下拉選項。 我在開發人員窗口中做了一個“查找”選項,下面是下拉項的網頁代碼,它位於 iframe 內

<div id="boundlist-1206-listWrap" data-ref="listWrap" role="presentation" class="x-boundlist-list-ct x-unselectable" style="overflow: auto; height: auto;">
  <ul id="boundlist-1206-listEl" data-ref="listEl" class="x-list-plain">
    <div data-qtip="" class="x-boundlist-item x-boundlist-item-over" tabindex="-1" data-recordindex="0" data-recordid="31" data-boundview="boundlist-1206" id="ext-932" role="option" aria-selected="false">Received Date</div>
    <div data-qtip="" class="x-boundlist-item" tabindex="-1" data-recordindex="1" data-recordid="32" data-boundview="boundlist-1206" id="ext-933" role="option" aria-selected="false">Status Date</div>
    <div data-qtip="" class="x-boundlist-item" tabindex="-1" data-recordindex="2" data-recordid="33" data-boundview="boundlist-1206" id="ext-934" role="option" aria-selected="false">Due Date</div>
    <div data-qtip="" class="x-boundlist-item" tabindex="-1" data-recordindex="3" data-recordid="34" data-boundview="boundlist-1206" id="ext-935" role="option" aria-selected="false">Disposition Date</div>
  </ul>
</div>

一些可能有幫助的要點:

1) 如果在 iframe 內,您需要先切換到 iframe

bot.SwitchToFrame(identifier)

標識符可以是 iframe 名稱/id 等選擇的元素。

2) 您可以在使用 SendKeys 之前嘗試單擊並按住輸入文本框

bot.FindElementById("x").ClickAndHold
'sendkeys line here

3)您可以嘗試使用javascript設置值

bot.ExecuteScript "document.getElementById('x').value = 'xx';"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM