单击HTMLInputElement,然后获取HTMLOptionElement

时间:2010-03-03 18:26:00

标签: html vba syntax option

我正在尝试编写vba代码来填写网络表单并为我单击按钮。我循环浏览页面上的各种option标签以选择我想要的标签。当我到达它时,我想选择它,但我不确定语法。

Dim htmlO As HTMLOptionElement
For Each htmlO In Object.getElementByTagName("option")
    If Trim(htmlO.value) = "INS" Then
       htmlO.????  (click? select?)
        Exit For
    End If
Next

以下是网页上的HTML:

<select gtbfieldid="40" id="menu" name="pv_choice">
<option selected="selected" value="ZZZ">Choose Menu Option
</option><option value="BL_COMP">Blanket Companies
</option><option value="CARR_SEARCH">Carrier Search
</option><option value="PASSWORD">Change Password
</option><option value="FED_REG">FMCSA Register
</option><option value="FEEDBACK">Feedback
</option><option value="HOME">Home Page
</option><option value="INS">Insurance Filing
</option><option value="OOS_LIST">Out Of Service Carriers
</option></select>

我想选择“INS”选项。

4 个答案:

答案 0 :(得分:2)

Dim StrFindText  as string
Dim htmlSelect As HTMLSelectElement
Dim htmlItemOption As IHTMLOptionElement

Set htmlSelect  = Object.getElementById("menu")
StrFindText = "INS"

For i = 0 To htmlSelect.options.length - 1
    htmlItemOption = htmlSelect.options(i)
    ' UCase(htmlItemOption.text) = UCase(StrFindText) ' if find text options
    If UCase(htmlItemOption.value) = UCase(StrFindText) Then
       htmlItemOption.selected = True
       Exit For
    End If
Next i

答案 1 :(得分:1)

我没有使用VBA,所以我提前道歉但假设它使用与我熟悉的其他语言相同的DOM结构,请尝试:

htmlO.selected= "selected"

这是我在javascript中实现这一点的方法:)

HTH

答案 2 :(得分:1)

CSS选择器:

这是一种简单得多的方法。使用option[value='INS']的CSS选择器。 这表示带有option标签的select元素具有属性value,其值为'INS'


CSS查询:

query


VBA:

通过document的{​​{3}}方法应用CSS selector

objdoc.querySelector("option[value='INS']").Click  

objdoc.querySelector("option[value='INS']").Selected = True 

答案 3 :(得分:0)

最终有效的是......

  

Dim htmlO As HTMLSelectElement
  设置htmlS = objdoc.getElementById(“menu”)
  htmlS.selectedIndex = 7

我必须参考整个菜单并选择要选择的菜单,而不是选择单个选项。