我知道关于这个问题也有类似的问题,并且我一直在进行审查和尝试,但仍然有一个问题,我要从网站的下拉列表中选择一个选项。我真的是想自己解决这个问题,但是我似乎无法正确理解这一部分。
不幸的是,该网站只能在内部访问(当然!),因此我不能共享它,但是我试图提供我认为相关的HTML。
我要尝试的是从列表中选择“等于”选项。我的大多数尝试最终都跳过了IF =等于部分,并前进到VBA的下一部分。
这是我最近几次尝试。 (在ant
方法上遇到Object Required
错误。
QuerySelector
<!DOCTYPE html>
<html>
<body class="bootstrap-wrapper" style="cursor: auto;">
<div tabindex="-1" class="ui-dialog ui-corner-all ui-widget ui-widget-content ui-front dialog ui-draggable ui-resizable" role="dialog" aria-describedby="02T" aria-labelledby="ui-id-1" style="left: 328px; top: 167.5px; width: 977px; height: 603px; overflow: visible; display: block; position: absolute; z-index: 201;">
<div title="" class="chosen-container chosen-container-single chosen-container-single-nosearch chosen-with-drop chosen-container-active" id="paymentReferenceNumber_chosen" style="left: 482px; top: 279.41px; width: 200px; margin-top: 45px; margin-left: 0px; position: absolute;">
<div class="chosen-drop" style="display: block;">
<div class="chosen-search"><input type="text" readonly="" autocomplete="off"></div>
<ul class="chosen-results">
<li class="active-result result-selected" data-option-array-index="0">
Select
</li>
<li class="active-result" data-option-array-index="1">
Equals To
</li>
<li class="active-result" data-option-array-index="2">
Contains
</li>
<li class="active-result" data-option-array-index="3">
Is Empty
</li>
</ul>
</div>
</div>
</div>
</body>
</html>
OR
Dim inputElement As HTMLInputElement
Set inputElement = doc.querySelector( _
"html body[class=bootstrap_wrapper] tbody div[tabindex=-1] div[class=chosen-container chosen-container-single chosen-container-single-nosearch chosen-with-drop chosen-container-active] div[class=chosen-drop] ul[class=chosen-results] li[class=active-result][data-option-array-index=1]")
If Not inputElement Is Nothing Then
inputElement.Click
End If
OR
ieApp.Document.querySelector("Select[name=paymentReferenceNumber_oper] option[value=equalsTo]").Selected = True
通过使用以下命令,我就可以选择大多数其他链接:
Set ElementCol = ieApp.Document.getElementsByTagName("li")
For Each ee In ElementCol
If ee.innerHTML = "Equals To" Then
ee.Click: DoEvents: Sleep 1000
Exit For
End If
Next ee
或使用:
ieApp.Document.all.Item("adv_search_tab").Click: Sleep 1000
这些只是我最近正在审阅的SO帖子中的两篇,旨在了解替代方案: VBA selecting a value from dropdown box on a webpage