我有一个试图通过 Excel VBA 与之交互的网页,但在让它响应我的编码请求时遇到问题。
页面上有一个下拉列表,只有在使用鼠标单击时才会更改。有趣的是,当我观看 HTML 代码 (F12) 并在下拉菜单上进行初始鼠标单击时,没有任何变化或似乎影响 HTML 代码。但是,我可以通过我的代码更改下拉选择,但页面无法识别更改或相应更新。
我在这些论坛中阅读了一些关于一些需要鼠标输入的网页的内容,但似乎“Click()”命令应该工作/功能相同。
不幸的是,该网站只能由授权人员访问,但我在此处删除了适用代码的部分:
<select
class="form-control ng-pristine ng-untouched ng-valid ng-not-empty"
name="DataSource"
ng-model="reportBuilder.selectedDataSource"
ng-options="o.key as o.value for o in reportBuilder.dataSources"
ng-change="reportBuilder.onDataSourceChage()"
aria-invalid="false"
>
<option label="Aircraft" value="number:0" selected="selected">Aircraft</option>
<option label="Flight" value="number:1">Flight</option>
<option label="Ground Operation" value="number:2">Ground Operation</option>
<option label="Lifing" value="number:3">Lifing</option>
<option label="Milestones Completed" value="number:4">Milestones Completed</option>
<option label="PACE" value="number:5">PACE</option>
</select>
这是我访问“数据源”下拉菜单的代码:
Dim dropdown As Object
Dim elem As Object
Set dropdown = IE.document.getElementsByName("DataSource").getElementsByTagName("options")
For Each elem In dropdown
If elem.lable = "Flight" Then
elem.Selected = True
IE.document.getElementByName("DataSource")(0).Click
End If
Next elem
此代码从下拉菜单中正确选择“飞行”选项并将其放置在网页窗口中,并且该代码还接受“单击”命令,但网页上没有任何变化。我在“DataSource”元素中看到了“ng-change”字段,但我不确定是否可以通过 VBA 与之交互。任何想法将不胜感激,谢谢!