【发布时间】:2019-02-06 17:37:24
【问题描述】:
我正在尝试使用带有 VBA 绑定的 Seleinum 从网页的下拉列表中选择一个值,但我无法做到。
这是我试过的代码bot.FindElementById("holder-samples-date-type-inputEl").SendKeys "XX"
我没有收到任何错误代码运行它单击下拉按钮并显示列表但未选择任何值并且下拉列表不会更改。
我有相同的项目,使用 VBA 和 IE(DOM 元素),这段代码在 Internet Explorer IE.document.getElementById("holder-samples-date-type-inputEl").Value = "XX" 中运行良好
这个下拉列表的有趣部分是单击下拉图标后我无法检查列表(例如右键单击列表),如果我单击网页中的其他任何位置或更改窗口下拉列表得到关闭(就像它缩回一样)注意:这不是鼠标悬停下拉。此外,当列表打开时,似乎添加了额外的代码(我已经粘贴了代码的 sn-p)
以下是网页中的 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="x-list-plain"><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>
【问题讨论】:
-
选项列表的 html 在哪里?你不能像上面提到的那样复制吗?
-
刚才我遇到了罢工,所以我在开发人员窗口中选择了“查找”选项并将代码粘贴到我的问题中。这不是一个公共站点,所以很抱歉它不能共享。
-
你需要先切换到 iframe
标签: excel vba selenium web-scraping drop-down-menu