我已使用VBA打开以下IE页面:https://insurance.qbe.com.au/portal/caravan/form/estimate
我现在希望我的代码选择第一个下拉列表的第一个选项 - 这是大篷车类型。
以下是下拉列表的HTML:
我已尝试使用以下代码选择" Caravan"从下拉列表中:
IE.Document.GetElementsbyClassName("ui-select-search ui-select-toggle ng-pristine ng-valid ng-touched")(1).Click
也试过
IE.Document.GetElementsbyClassName("ui-select-search ui-select-toggle ng-pristine ng-valid ng-touched")(1).SelectedIndex = 1
还试过看似奇怪的,比如
IE.Document.GetElementsbyClassName("ui-select-search ui-select-toggle ng-pristine ng-valid ng-touched")(1).Value = "Caravan"
所以我想我真正想知道的是:当关联的HTML似乎只有一个类(并且没有id)时,如何从下拉列表中选择一个值?
然后我扩展了HTML以查看我是否遗漏了某些内容。我在下拉列表的HTML结尾处看到以下内容,我认为解决方案依赖于此(但此时根本不确定)。
因此,我不再确定哪个HTML会影响下拉列表中需要选择的值 - 而且还不确定如何实际选择该值
答案 0 :(得分:0)
GetElementsbyClassName不适用于所有版本的IE。
这样做:
完成!! 强>
Dim lists, l 'Removed the opts and o variables you dim'd here as they don't feature in the code
Set lists = IE.document.getElementsByTagName("select") 'edited this line to include IE. before document
For Each l in lists
If instr(1, l.className,"ui-select-search", 1) then
l.selectedIndex = 0
End If
next